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

123

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

    
pregunta Eric H 29.07.2010 - 01:40

7 respuestas

102

Simplemente puedes usar el comando initctl list shell para enumerar los contenidos de /etc/init en lugar del comando sugerido dbus-send .

    
respondido por el Scott 13.10.2010 - 04:04
95

La respuesta rápida es: depende de su sistema init .

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

Upstart

Para enumerar todos los servicios:

initctl list

Para enumerar todos los servicios de Upstart y ejecutar initctl show-config en ellos, esta frase 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
    
respondido por el TrinitronX 27.09.2015 - 05:49
13

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

Puede hacer una lista de todos los trabajos de upstart consultando a upstart a través de dbus:

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

Es posible que tengas que cambiar 0_6 para reflejar la versión de upstart que tienes. Este comando funciona en mi instalación lúcida.

    
respondido por el Jeremy Kerr 29.07.2010 - 05:30
12

Si desea una buena representación gráfica de los servicios y el tiempo necesario para el arranque, intente:

apt-get install bootchart
    
respondido por el john 13.10.2010 - 05:39
11

La identificación utiliza initctl show-config <servicename> para obtener realmente los detalles de cuándo / si su servicio se iniciará durante el inicio.

Me gusta:

$ 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 imho.

    
respondido por el CBmemnon 21.07.2014 - 12:46
8

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

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
    
respondido por el Carlos Alvsan 07.01.2017 - 17:04

Lea otras preguntas en las etiquetas