Ubuntu usa en Upstart
lugar del init
sistema tradicional . Upstart es más fuerte que init, pero es un poco más complicado que init
.
Upstart, en contraste, está basado en eventos. Un "evento" puede ser algo así como "arrancar" ... o puede ser mucho más específico, como "la red está lista para usar ahora". Puede especificar qué scripts dependen de qué eventos. Cualquier cosa que no esté esperando un evento puede ejecutarse siempre que haya CPU disponible.
Este sistema basado en eventos tiene otra ventaja: teóricamente puede usarlo incluso después de que el sistema esté en funcionamiento. Upstart finalmente está programado para asumir tareas tales como o conectar dispositivos externos como unidades de memoria USB (actualmente manejadas por udev y hal), o ejecutar programas en momentos específicos (actualmente manejados por cron).
Como debe saber ahora, un demonio muerto (que no se ejecuta en el inicio) puede estar vivo y se inicia debido a un evento.
Ubuntu tiene tanto / etc / init, para Upstart, y /etc/init.d, para los viejos archivos SysV. Algunos de los archivos que contiene son scripts de SysV Init normales que aún no se han migrado. Pero algunos servicios que han migrado mantienen un enlace de /etc/init.d a / lib / init / upstart-job. Si ejecuta uno de esos, funciona, pero imprime una advertencia primero:
En lugar de invocar scripts de inicio a través de /etc/init.d, use la utilidad service (8), p. Ej. service mysql restart
Dado que el script que está intentando invocar se ha convertido en un trabajo Upstart, también puede usar la utilidad restart (8), por ejemplo, reiniciar mysql.
En una máquina Upstart, init proviene de upstart. En lugar de ejecutar un script rc maestro que llama a los scripts para un nivel de ejecución específico, el inicio de Upstart toma trabajos de su directorio de trabajos.
Ahora sabemos que no hay una manera simple de enumerar demonios de inicio automático, debe enumerar todos los demonios y verificarlos uno por uno. El demonio puede ser iniciado por init
o por upstart
o incluso por un evento posterior.
La forma más sencilla de obtener esta lista es ejecutar este comando en el shell:
initctl show-config
El resultado se ve así:
...
hostname
start on startup
udevtrigger
start on ((startup and started udev) and not-container)
tty2
start on (runlevel [23] and ((not-container or container CONTAINER=lxc) or container CONTAINER=lxc-libvirt))
...
Algunos elementos, como el primero, son tan simples que hostname
comienzan en el inicio. Pero otros artículos pueden parecer más complicados. (Pero afortunadamente, legible por humanos :-))
chkconfig --list
que funcionará bien?on
significa que el servicio se ejecuta en ese nivel de ejecución y que se iniciará automáticamente cuando se inicie el sistema.