¿Por qué existen ambos, un script Upstart y un script init.d, para varios demonios?

¿Por qué existen ambos, un script Upstart y un script init.d, para varios demonios?

Estoy ejecutando Ubuntu 12.04.3 LTS e instalé varios servicios como Samba, servidor DHCP,...

Recibo la siguiente advertencia cuando ejecuto "halt now", "telinit 6" o similar:

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

Puedo ver que los servicios afectados intentan detener/iniciar dos veces. Una vez a través del trabajo Upstart y nuevamente a través de los enlaces simbólicos S/K en la carpeta /etc/rcN.d que apuntan al script init.d. Probablemente pueda simplemente eliminar el enlace simbólico en la carpeta /etc/rcN.d.

Flujo de ejemplo:

  1. Ejecute 'detener ahora' desde el shell
  2. Upstart detiene Samba (porque hay un archivo de configuración de Upstart para Samba)
  3. SysV intenta detener Samba nuevamente (porque también hay un enlace simbólico /etc/rc0.d/K20smbd)

No entiendo/quiero el paso 3 porque parece innecesario y muestra una advertencia fea.

¿Por qué existen tanto el script Upstart como los enlaces simbólicos al script init.d para varios demonios? ¿Es la forma correcta de limpiar manualmente los enlaces simbólicos duplicados en cada carpeta /etc/rcN.d?

Respuesta1

Ubuntu tiene initenlaces de compatibilidad que llaman a sus contrapartes advenedizos cada vez que los ejecuta.

Si llama, por ejemplo, sudo /etc/init.d/apache startse le vinculará a upstart-job que le presenta un mensaje informativo agradable que debe usar sudo services apache starty luego ejecuta el comando por sí solo.

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 }

Respuesta2

Descubrí que esto es una mala configuración en mis scripts de Puppet.

El atributo de tipo 'servicio' 'habilitar' creó el script de inicio SysV en lugar de reconocer el script Upstart.

información relacionada