¿Comando para enumerar los servicios que comienzan en el inicio?


144

¿Hay un comando para enumerar los servicios que se ejecutan al inicio? Me imagino que implicaría el análisis /etc/init.d/y los diversos /etc/rc.*directorios.

Respuestas:


104

Simplemente puede usar el initctl listcomando de shell para enumerar el contenido en /etc/initlugar del dbus-sendcomando sugerido .


2
¿Funciona esto en Ubuntu 18.04? Me sale "initctl: comando no encontrado" (en bash)
— Sanjay Manohar

121

La respuesta rápida es: depende de su initsistema.

La respuesta larga es: para las versiones actuales de Ubuntu, probablemente tenga una combinación de Upstart y SystemV . Las nuevas versiones de Ubuntu 15.04 después de "Vervet Vivid" (y otras distribuciones de Linux como RHEL / CentOS 7) se están moviendo a utilizar SystemD .

Advenedizo

Para enumerar todos los servicios:

initctl list

Para enumerar todos los servicios de Upstart y ejecutarlos initctl show-config, este resumen puede ser útil:

initctl list | awk '{ print $1 }' | xargs -n1 initctl show-config

Sistema V

Para enumerar todos los servicios:

service --status-all

O:

# for init scripts:
ls /etc/init.d/

# for runlevel symlinks:
ls /etc/rc*.d/

SystemD

Para enumerar todos los servicios:

systemctl list-unit-files --type=service

O:

ls /lib/systemd/system/*.service /etc/systemd/system/*.service

99
Esta debería ser la respuesta aceptada.
— sjas

service --status-allNO muestra si los servicios están habilitados para iniciarse en el arranque, al menos no en Ubuntu 16. Muestra si los servicios se están ejecutando actualmente o no.
— Comodín el

1
Tuve sudo service --status-allque obtener todos los servicios para aparecer. Algunos estaban ocultos cuando solo ejecuté service --status-allen una cuenta no root.
— Phlucious

@Phlucious: Gracias por mencionar eso. Supuse que era bien sabido que estos comandos se ejecutan normalmente como root ( systemctl, service, initctl...), ya que generalmente se consideran comandos de administración del sistema.
— TrinitronX

13

Los directorios /etc/init.dy /etc/rc.*han sido reemplazados por la upstartherramienta ' ' init. Aunque los scripts en estos directorios se ejecutarán como se esperaba, el nuevo método para ejecutar cosas en init está definido por archivos en/etc/init/

Puede enumerar todos los trabajos de arranque con la consulta de arranque en dbus:

dbus-send --print-reply --system --dest=com.ubuntu.Upstart \
        /com/ubuntu/Upstart com.ubuntu.Upstart0_6.GetAllJobs

Puede que tenga que cambiar 0_6para reflejar la versión de advenedizo que tiene. Este comando funciona en mi instalación lúcida.


3
@Eric H: ¿Podría configurar la respuesta a continuación como correcta en su lugar? initctl listEs mucho mejor que este comando dbus. Sin embargo, me gustaría dejar esta respuesta aquí como referencia (en lugar de eliminarla por completo).
— Jeremy Kerr

12

Si desea una buena representación gráfica de los servicios y el tiempo que lleva arrancar, intente:

apt-get install bootchart

11

Lo usaría initctl show-config <servicename>para obtener realmente los detalles de cuándo / si su servicio se iniciará durante el arranque.

Al igual que:

$ initctl show-config myservice
myservice
  start on runlevel [2345]
  stop on runlevel [!2345]

O para NFS4 idmap-daemon:

$ initctl show-config idmapd
idmapd
  start on (local-filesystems or mounting TYPE=nfs4)
  stop on runlevel [06]

chkconfig solo es preferible en sistemas basados ​​en RedHat en mi humilde opinión.


1
Esta es la respuesta correcta. No tengo idea de por qué todas las respuestas incorrectas e incompletas están tan altamente votadas.
— Cerin

1
Esto no funciona para las personas que usan SysV, estoy de acuerdo en que es una buena respuesta, pero está incompleto.
— Gabriel Netto

9

El 12.04 podríamos usar:

sudo apt-get install chkconfig
chkconfig --list

pero fue eliminado en 12.10 .

Salida de muestra:

acpi-support              0:off  1:off  2:on   3:on   4:on   5:on   6:off
acpid                     0:off  1:off  2:off  3:off  4:off  5:off  6:off
apparmor                  0:off  1:off  2:off  3:off  4:off  5:off  6:off  S:on

2
No funciona en Ubuntu. packages.ubuntu.com/…
— AB

@AB gracias por hacérmelo saber! Hoy en día es raro que los que votan abajo comenten: requiere coraje y me permite aprender. actualizado con la versión en la que funciona.
— Ciro Santilli 新疆 改造 中心 法轮功 六四 事件



0

Además de los servicios del sistema y scripts bajo:

/etc/init.d/
/ lib / systemd / system /
/ etc / systemd / system /

Probablemente también haya aplicaciones de inicio automático , por ejemplo:

find / -name "*autostart*"

ls -1 "/etc/xdg/autostart" "/home/$USER/.config/autostart" "/usr/share/gdm/autostart"  "/usr/share/gnome/autostart"

-2

Usando gawk:

ls -l /etc/rc*.d/* | gawk 'match($0, /rc([0-6S]).d.*\/(.*)$/, a) {l[a[2]]=l[a[2]]a[1]","}; END{for(v in l){print v,substr(l[v],1,length(l[v])-1)}}'

Salida de muestra:

$ ls -l /etc/rc*.d/* | gawk 'match($0, /rc([0-6S]).d.*\/(.*)$/, a) {l[a[2]]=l[a[2]]a[1]","}; END{for(v in l){print v,substr(l[v],1,length(l[v])-1)}}' | egrep README
README 0,1,2,3,4,5,6,S
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.