Como impedir que um daemon inicie na inicialização no Debian

16

Existem alguns daemons que eu desabilito para iniciar na inicialização. Como exemplo, eu uso o seguinte:

 sudo update-rc.d -f postgresql remove

Nem tenho certeza se esse comando está correto e não me lembro de onde o peguei.

De qualquer forma, sempre que atualizo postgresql, a configuração é perdida (ou seja, o daemon inicia na reinicialização).

tshepang
fonte
1
No Debian com SysVinit, eu gosto file-rc. Em vez de gerenciar links simbólicos, eu gerencio um arquivo de texto com minhas configurações de nível de execução.
Gilles 'SO- stop be evil'

Respostas:

22

update-rc.dfoi usado inicialmente pelos scripts de atualização do pacote. removeé chamado na desinstalação do pacote e remove todos os links, defaultsé chamado na instalação do pacote enableou disablepode ser usado dependendo do debconf e é útil para sysadmins. De fato, as limpezas removenão são úteis para desativar um serviço. Na página do manual:

Um erro comum de administração do sistema é excluir os links com a idéia de que isso "desabilitará" o serviço, ou seja, que isso impedirá que o serviço seja iniciado. No entanto, se todos os links foram excluídos, na próxima vez que o pacote for atualizado, o script postinst do pacote executará o update-rc.d novamente e isso reinstalará os links nos locais padrão de fábrica. A maneira correta de desativar os serviços é configurá-lo como parado em todos os níveis de execução nos quais é iniciado por padrão. No sistema init do System V, isso significa renomear os links simbólicos do serviço de S para K.

sudo update-rc.d postgresql disablefará o que quiser, porque mantém os links simbólicos do rc.d, mas com o prefixo K (morto, parado). Reverta com um enable. Alguns serviços suportam a desativação de seus /etc/defaults/$servicearquivos, mas, infelizmente, há exceções. Outras maneiras de desativar um serviço são chmod -x o /etc/init.d/$servicearquivo ou inserir um exit 0na parte superior.

Tobu
fonte
6

Para esclarecer a melhor solução, semelhante à resposta que Tobu deu:

  1. Não use update-rc.dcom a removeopção
  2. Em vez disso, use update-rc.dcom a disableopção

Exemplo: update-rc.d postgresql disable


Além disso, você também pode encontrar (e desativar) outros serviços mais específicos com systemctl.

Exemplo: systemctl disable pppd-dns.service

Arahkun
fonte
+1 para o conselho não usar a opção REMOVER
PYK 17/01/19
3

Tobu é absolutamente certo, mas para ser completo, há uma ferramenta para lhe dar uma visão inteligente: sysv-rc-conf. Para cópia & patse:

apt-get install sysv-rc-conf

Em execução, sysv-rc-confvocê verá qual script é executado em qual nível de execução. Você pode ativar / desativar serviços via spacee sair com q.

binfalse
fonte
2
Eu também gosto rcconf, é nos repositórios padrão. Lembre-se de que nada disso funcionará com o upstart, que é o padrão no Ubuntu. Embora muitas coisas ainda usem o init herdado.
JM Becker