¿Cómo se inician los servicios del sistema en 12.10?

12

Una cosa que siempre me confundió en Ubuntu fue cómo se inician los servicios del sistema. Sé que Ubuntu usa Upstart y admite SysV, pero ¿cuál se usa para iniciar los servicios? Esto es importante cuando desea un inicio "manual" para un servicio.

Por ejemplo, en mi sistema tengo archivos para los siguientes servicios, ya sea en /etc/init.d/<service>(SysV) y /etc/init/<service>.conf(Upstart):

acpid, mysql, networking, qemu-kvm, ufw, libvirt-bin

Entonces, si quiero deshabilitar la ejecución de MySQL al inicio, ¿debo usar la forma Upstart o SysV para deshabilitarla? Además, ¿cómo puedo saber cuál de ellos se usa realmente para iniciar un servicio genérico?

Editar

La verdadera duda aquí no es cómo deshabilitar / habilitar servicios usando SysV / Upstart. Lo que realmente me confunde es que algunos servicios parecen estar definidos (y habilitados) en SysV y Upstart al mismo tiempo. ¿Hay alguna precedencia entre ellos (como si mysqlestá habilitado en ambos lanzamientos usando SysV)? ¿O puede darse el caso de que una herramienta use la otra en segundo plano?

Salem
fuente
1
Eche un vistazo a la respuesta aceptada aquí: askubuntu.com/questions/133807/… tiene algunos enlaces interesantes.
Rinzwind

Respuestas:

2

Con respecto a los servicios que se definen tanto en SysV como en el inicio, generalmente si reinicia a través de SysV verá algo como esto:

al@al-mythtv:~$ sudo /etc/init.d/mysql restart
[sudo] password for al: 
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mysql restart

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop mysql ; start mysql. The restart(8) utility is also available.
mysql stop/waiting
mysql start/running, process 29846

Lo que entiendo es que Upstart es el preferido para estos servicios, y la implementación de SysV es solo una envoltura.

Además, creo que tienes el significado de los directorios al revés. / etc / init es una configuración inicial, /etc/init.d es la compatibilidad SysV, pero son solo enlaces simbólicos para iniciar este tipo de servicios.

Alistair Buxton
fuente
6

Depende en gran medida de la aplicación y su responsable de empaquetado.

Hay una fuerte preferencia por los scripts de Upstart porque manejan eventos (que generalmente es una gran cosa) pero muchas aplicaciones no tienen scripts de Upstart lo suficientemente buenos disponibles o el responsable de la aplicación ha optado por mantener los valores predeterminados (aplicación o Debian) .

De cualquier manera, estás en la posición en la que tienes que adaptarte.

  • Para advenedizo:
    • Cambie el nombre del archivo a algo que no termine .conf, o
    • Añadir manualal archivo. Esto le permitirá cargar manualmente el servicio.
  • Para servicios más antiguos:

    update-rc.d -f <service> remove
    

Si tiene una /etc/init.d/secuencia de comandos para algo y una /etc/init/secuencia de comandos y desea verificar si la versión init.d aún está activa, puede verificar con:

ls -l /etc/rc?.d/*<service>

Si ve una carga de enlaces simbólicos, se instala en el antiguo SysV init.

Oli
fuente
Entonces, si tengo un servicio que está habilitado en SysV y Upstart (por ejemplo, acpid), ¿puedo asumir que SysV lo lanzó? ¿O si deseo desactivarlo, necesitaría hacerlo usando update-rc.del truco de cambio de nombre?
Salem