A seconda della tua distribuzione, usa lo strumento chkconfig o update-rc.d per abilitare/disabilitare i servizi di sistema.
Su un sistema in stile redhat/suse/mandrake:
sudo chkconfig apache2 off
Su Debian:
sudo update-rc.d -f apache2 remove
Dai un'occhiata alle loro pagine man per maggiori informazioni.
Se hai a che fare con un moderno sistema Ubuntu e poche altre distribuzioni potresti dover gestire una combinazione di script init tradizionali e script upstart. La gestione degli script init è coperta da altre risposte. Il seguente è un modo per impedire l'avvio di un servizio upstart all'avvio:
# mv /etc/init/servicename.conf /etc/init/servicename.conf.disabled
Il problema con questo metodo è che non ti permette di avviare il servizio usando:
# service start servicename
Un'alternativa a questo è aprire il servicename.conf
file nel tuo editor preferito e commenta tutte le righe che iniziano con:
start on
Cioè, cambia questo in
#start on ...
dove il "..." è tutto ciò che era dopo "start on" in precedenza. In questo modo, quando si desidera riattivarlo, non è necessario ricordare quali erano i parametri "start on".
Infine, se hai una nuova versione di upstart puoi semplicemente aggiungere la parola "manual" alla fine del file di configurazione. Puoi farlo direttamente dalla shell:
# echo "manual" >> /etc/init/servicename.conf
Questo farà sì che upstart ignori qualsiasi frase "start on" precedente nel file.
Sui recenti sistemi Fedora e Future RHEL
systemctl disable httpd.service
disabiliterà il servizio httpd