22 votos

En Ubuntu, hay un comando para mostrar una lista de TODOS los servicios de inicio automático?

En Ubuntu,

  1. Hay un comando para mostrar una lista de todos los servicios de inicio automático?
  2. Hay un comando para comprobar si un servicio es auto-iniciar en el arranque o no?

Yo lo hice de Google y el IRC. No puedo encontrar la respuesta. Tal vez no hay comandos que existen en Ubuntu. En el principio, yo creía que todos los auto-iniciar los servicios podrían estar bajo /etc/rc2.d/, pero estaba equivocado acerca de eso. Algunos sólo se configuran bajo /etc/init/*.conf. Luego probé con el chkconfig herramienta (instalado de forma manual), no funciona todo el tiempo. Por ejemplo, se da el mal resultado para mongodb que es auto-iniciar desde /etc/init/mongodb.conf.

service --status-all y initctl list sólo puede decirle a los servicios de' estado actual en lugar de autostart estado. update-rc.d es un comando para cambiar el inicio automático de estado en lugar de mostrar el estado.

Si no hay respuesta a mi pregunta, me pregunto por qué es tan difícil controlar la autostart servicios en Ubuntu.

11voto

Anjan3 Puntos 1830

Ubuntu utiliza Upstart en lugar de la tradicional init del sistema. Upstart es más fuerte que el init, pero es un poco más complicado de lo que init.

Upstart, en contraste, está basado en eventos. Un "evento" puede ser algo como "arrancar" ... o puede ser mucho más específico, como "la red está listo para utilizar". Usted puede especificar cuál de las secuencias de comandos dependen de que los acontecimientos. Algo que no está esperando un evento puede ejecutar cada vez que hay CPU disponible.

Este evento-que se basa el sistema tiene otra ventaja: que, teóricamente, puede utilizar incluso después de que el sistema está en marcha y funcionando. Upstart es, finalmente, se llevará a través de tareas tales como la o la conexión de dispositivos externos como memorias usb (actualmente manejado por udev y hal), o programas en ejecución en momentos específicos (actualmente manejados por cron).

Como usted debe saber ahora, muerto el demonio (que no se ejecuta en el inicio) puede estar vivo y empieza a causa de un evento.

Ubuntu tiene tanto de /etc/init, para Advenedizo, y /etc/init.d, para el viejo SysV archivos. Algunos de los archivos son regulares SysV Init scripts que no se han migrado todavía. Pero algunos de los servicios que han migrado a mantener un vínculo de /etc/init.d a /lib/init/upstart-trabajo. Si ejecuta uno de esos, funciona, pero se imprime una primera advertencia:

En lugar de invocar scripts de inicio a través de /etc/init.d, utilizar el servicio(8) utilidad, por ejemplo, service mysql restart

Desde la secuencia de comandos que están tratando de invocar ha sido convertida a un Advenedizo de trabajo, también puede utilizar el reinicio(8) utilidad, por ejemplo, reiniciar mysql.

En un Advenedizo de la máquina, init viene de upstart. En lugar de ejecutar un master rc script que llama a los scripts para un determinado nivel de ejecución, Upstart init lleva puestos de trabajo de su directorio de trabajo.

Ahora sabemos que no existe una manera simple de la lista de inicio automático de los demonios, usted debe tener una lista de todos los demonios y comprobar uno por uno. El demonio puede ser iniciado por init o upstart o incluso por una cita posterior. La forma más sencilla de obtener esta lista se ejecuta este comando en la shell:

initctl show-config

La salida se parece a esto:

...
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 la primera de ellas es tan simple, hostname comienza en el inicio. Pero otros elementos pueden ser más complicado. (Pero, afortunadamente, legible :-) )

5voto

Ori Puntos 1287

En realidad, todos los servicios están presentes en /etc/init.d:

rc0.d contains the services which runs in runlevel 0
rc1.d contains the services which runs in runlevel 1
rc2.d contains the services which runs in runlevel 2
rc3.d contains the services which runs in runlevel 3
rc4.d contains the services which runs in runlevel 4
rc5.d contains the services which runs in runlevel 5
rc6.d contains the services which runs in runlevel 6

Una cosa más, todos los servicios están presentes en 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 solamente.

Ver aquí este es el contenido de rc1.d directorio de:

lrwxrwxrwx 1 root root  20 Aug 17 14:54 K15pulseaudio -> ../init.d/pulseaudio
lrwxrwxrwx 1 root root  22 Nov 28 18:47 K20acpi-support -> ../init.d/acpi-support
lrwxrwxrwx 1 root root  20 Aug 17 14:54 K20kerneloops -> ../init.d/kerneloops
lrwxrwxrwx 1 root root  23 Nov  7 15:24 K20openbsd-inetd -> ../init.d/openbsd-inetd
lrwxrwxrwx 1 root root  15 Aug 17 14:54 K20saned -> ../init.d/saned
lrwxrwxrwx 1 root root  27 Aug 17 14:54 K20speech-dispatcher -> ../init.d/speech-dispatcher
-rw-r--r-- 1 root root 369 Apr 14  2012 README
lrwxrwxrwx 1 root root  19 Aug 17 14:54 S30killprocs -> ../init.d/killprocs
lrwxrwxrwx 1 root root  19 Aug 17 14:54 S70dns-clean -> ../init.d/dns-clean

Aquí se puede observar el enlace simbólico a init.d (K15pulseaudio -> ../init.d/pulseaudio).

Pero aquí cada servicio está vinculado a init.d, ¿verdad? Pero todo no se iniciará el servicio; la razón es de dos guiones.

El primero es un S de secuencia de comandos (S30killprocs)---> inicio

El segundo es un k script (K15pulseaudio)---> matar

Todos los K secuencia de comandos de servicios de matar a los servicios y todos los S secuencia de comandos de inicio de los servicios los servicios para que el nivel de ejecución.

En breve

S70dns-clean -> ../init.d/dns-clean inicio dns-clean de servicio en el nivel de ejecución 1.

K15pulseaudio -> ../init.d/pulseaudio mata pulseaudio de servicio en el nivel de ejecución 1.

2voto

dseira Puntos 36

Usted puede instalar sysv-rc-conf que es un ncurses programa para configurar o mostrar la rc niveles gráficamente.

0voto

Noah McIlraith Puntos 1241

Hay un comando para mostrar una lista de todos los servicios de inicio automático?

Mira aquí: update-rc-d-cheat-sheet

Hay un comando para comprobar si un servicio es auto-iniciar en el arranque o no?

Ninguno, que yo sepa (que no quiere decir nada ;), pero usted puede comenzar a leer aquí: askubuntu foro - dependencia de servicio

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: