Como faço para parar o Apache2 de iniciar automaticamente na inicialização?

173

Como faço para parar o Apache2 de iniciar automaticamente na inicialização? Não consigo encontrar uma opção que desative a inicialização automática quando ligo a máquina.

niccolo m.
fonte
1
Talvez alguém possa ser mais específico, mas posso apontá-lo na direção certa ... em / etc, existem diretórios para rc * .d, que contêm todos os scripts de início / parada, chamados, acho, de scripts de inicialização. Você verá links para scripts que estão em /etc/init.d e começando com "k" ou "s", para "kill" ou "start", e um número que está ordenando.
Marty Fried
Sim, eu sabia sobre os diretórios /etc/rcX.d, mas procurei descobrir alguma ferramenta melhor do que apenas renomear arquivos manualmente (a vida é muito curta). update-rc.dpreencheu este vazio.
Tomasz Gandor

Respostas:

160

Sob a pasta, /etc/init.d/você encontrará todos os scripts init para diferentes serviços de inicialização, como apache2, rede, etc.

Dependendo do nível de execução em que o computador inicia, diferentes serviços são iniciados. Portanto, a partir da /etc/init.d/pasta, cada "serviço" está vinculado a uma / muitas / sem pastas de nível de execução nomeadas de rc0.dpara rc6.d.

Para simplificar, existe uma ferramenta para remover / adicionar esses links, removendo ou adicionando scripts para e da inicialização.

Para desativar o apache2, basta digitar:

sudo update-rc.d apache2 disable

Isso desativa o apache2 na inicialização, mas não é removido para poder ser ativado novamente. Para remover os scripts de inicialização do apache2, faça o seguinte:

Para remover o apache2, basta digitar:

sudo update-rc.d -f  apache2 remove

Isso fará com que todas as pastas de nível de execução vinculadas ao apache2 sejam removidas.

tomodachi
fonte
2
chkconfig também pode ajudar - "chkconfig {service_name} off"
MCR
Não funciona mais:The script you are attempting to invoke has been converted to an Upstart job, but lsb-header is not supported for Upstart jobs. (...)
TomDogg 29/04
2
@ TomDogg, você pode especificar as versões com as quais estava trabalhando? Esta resposta funciona para Apache 2 no Ubuntu 14.04.3
Dale Anderson
1
Como restaurar o serviço?
Eugen Konkov
9
Aviso! Isso REMOVERá o serviço! Use sudo update-rc.d apache2 disable.
Eduardo Cuomo
194

você pode simplesmente desativá-lo por:

sudo update-rc.d apache2 disable

e se você quiser habilitá-lo novamente:

sudo update-rc.d apache2 enable

dependendo do projeto em que estou trabalhando, é útil ter o serviço convenientemente disponível, se desejar reativá-lo.

gsullins
fonte
4
enableme deu um erro como runlevel arguments (none) do not match LSB Default-Start values, mas sudo update-rc.d apache2 defaultsparece ter reativado com sucesso.
aqui
2
@here sudo update-rc.d apache2 enablejogou como esperado para mim
Georgios Pligoropoulos
1
No Ubuntu Trusty, ele diz "A API de desativar | ativar não é estável e pode mudar no futuro."
Tanner #
1
Não funciona - error: no runlevel symlinks to modify, aborting!. No entanto, o apache2 está em execução e é iniciado automaticamente.
Daniel Kmak
Não funciona mais:update-rc.d: error: no runlevel symlinks to modify, aborting!
TomDogg 29/04
55

Com systemdagora podemos usar systemctlcomandos para impedir que um serviço seja iniciado automaticamente na inicialização.

aqui está um exemplo:

sudo systemctl disable apache2

Você ainda poderá iniciar e parar o serviço, mas ele não será iniciado na inicialização.

mchid
fonte
2
O Linux Mint ainda é baseado no Ubuntu 14.04. O Ubuntu começa a usar o systemd a partir de 15.04.
twan163
1
@dragonmnl como twan163 disse, systemd é para as versões mais recentes (jessie debian ou equivalente +)
mchid
1
isso funcionou muito bem no Debian
Anupam
1
a resposta certa para debian 9+
John
1
Se encontrar update-rc.d: error: no runlevel symlinks to modify, aborting!, recrie qualquer um dos links abaixo ausentes; tente novamente: /etc/rc0.d/K01 <serviço> /etc/rc1.d/K01 <serviço> /etc/rc2.d/S99 <serviço> /etc/rc3.d/S99 <serviço> / etc / O que é rc4.d / S99 <service> /etc/rc5.d/S99 <service> /etc/rc6.d/K01 <service> #
Amil Waduwawara
5

Pensei em adicionar as respostas de @gsullins e @tomodachi para futuros leitores que usaram a resposta aceita.

Se você já usou:

sudo update-rc.d apache2 remove

Você pode usar o argumento defaultspara adicionar o apache2 novamente ao início automático

sudo update-rc.d apache2 defaults

Então você pode ativar / desativar

sudo update-rc.d apache2 disable
sudo update-rc.d apache2 enable
Ben Winding
fonte