Por que existem ambos, um script Upstart e um script init.d, para vários daemons?

Por que existem ambos, um script Upstart e um script init.d, para vários daemons?

Estou executando o Ubuntu 12.04.3 LTS e instalei vários serviços como Samba, servidor DHCP, ...

Recebo o seguinte aviso quando executo "halt now", "telinit 6" ou similar:

Since the script you are attempting to invoke has been converted
to an Upstart job, you may also use the...

Posso ver que os serviços afetados tentam parar/iniciar duas vezes. Uma vez através do trabalho Upstart e novamente através dos links simbólicos S/K na pasta /etc/rcN.d que tem como alvo o script init.d. Provavelmente posso simplesmente remover o link simbólico da pasta /etc/rcN.d.

Fluxo de exemplo:

  1. Execute 'halt now' no shell
  2. O Upstart interrompe o Samba (porque existe um arquivo conf do Upstart para o Samba)
  3. SysV tenta parar o Samba novamente (porque também existe um link simbólico /etc/rc0.d/K20smbd)

Não entendo/quero a etapa 3, pois parece desnecessária e mostra um aviso feio.

Por que existem o script Upstart e os links simbólicos para o script init.d, para vários daemons? É a maneira correta de limpar manualmente os links simbólicos duplicados em cada pasta /etc/rcN.d?

Responder1

O Ubuntu possui initlinks de compatibilidade que chamam seus equivalentes iniciantes sempre que você os executa.

Se você ligar, por exemplo, sudo /etc/init.d/apache startvocê será vinculado ao upstart-job que apresenta uma bela mensagem informativa que você deve usar sudo services apache starte então executa o comando sozinho.

ls -l /etc/init.d/network-manager 
lrwxrwxrwx 1 root root 21 Sep 18 14:02 /etc/init.d/network-manager -> /lib/init/upstart-job

cat /lib/init/upstart-job
#!/bin/sh -e
# upstart-job
#
# Symlink target for initscripts that have been converted to Upstart.
{ lots of ASCII awesomeness }

Responder2

Eu descobri que isso é uma configuração incorreta em meus scripts do Puppet.

O atributo de tipo 'service' 'enable' criou o script de inicialização SysV em vez de reconhecer o script Upstart.

informação relacionada