En Ubuntu
- ¿Hay un comando para mostrar una lista de todos los servicios de inicio automático?
- ¿Hay un comando para verificar si un servicio se inicia automáticamente en el momento del arranque o no?
Hice Google e IRC. No puedo encontrar la respuesta. Tal vez no existan dichos comandos en Ubuntu. Al principio, pensé que todos los servicios de inicio automático estarían bajo /etc/rc2.d/
, pero me equivoqué al respecto. Algunos están configurados solo bajo /etc/init/*.conf
. Luego probé la chkconfig
herramienta (la instalé manualmente), no funciona todo el tiempo. Por ejemplo, da el resultado incorrecto para el mongodb
cual se inicia automáticamente /etc/init/mongodb.conf
.
service --status-all
y initctl list
solo puede indicar el estado actual de los servicios en lugar del estado de inicio automático. update-rc.d
es un comando para cambiar el estado de inicio automático en lugar de mostrar el estado.
Si no hay una respuesta a mi pregunta, me pregunto por qué es tan difícil verificar los servicios de inicio automático en Ubuntu.
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.ls /etc/rc?.d
?Respuestas:
Ubuntu usa en
Upstart
lugar delinit
sistema tradicional . Upstart es más fuerte que init, pero es un poco más complicado queinit
.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 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 porupstart
o incluso por un evento posterior. La forma más sencilla de obtener esta lista es ejecutar este comando en el shell:El resultado se ve así:
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 :-))fuente
En realidad, todos los servicios están presentes solo bajo /etc/init.d:
Una cosa más, todos los servicios están presentes
rc0.d
rc1.d
rc2.d
rc3.d
rc4.d
rc5.d
rc6.d
también, pero es un enlace simbólico a/etc/init.d
solo.Vea aquí este es el contenido del
rc1.d
directorio:Aquí puede observar el enlace simbólico a init.d (K15pulseaudio -> ../init.d/pulseaudio).
Pero aquí todos los servicios están vinculados a init.d, ¿verdad? Pero no todos los servicios comenzarán; La razón son dos guiones.
El primero es un script S (S30killprocs) ---> inicio
El segundo es un script k (K15pulseaudio) ---> kill
Todos los servicios de script K eliminan los servicios y todos los servicios de script S inician los servicios para ese nivel de ejecución.
En breve
S70dns-clean -> ../init.d/dns-clean
iniciar eldns-clean
servicio en el nivel de ejecución 1.K15pulseaudio -> ../init.d/pulseaudio
mata elpulseaudio
servicio en el nivel de ejecución 1.fuente
Puede instalar sysv-rc-conf que es un programa ncurses para configurar / mostrar los niveles de rc gráficamente.
fuente
Mira aquí: update-rc-d-cheat-sheet
Ninguno, lo sé (que no significa nada;), pero puede comenzar a leer aquí: foro askubuntu - dependencia del servicio
fuente