Comando per elencare servizi che si avviano all'avvio?

123

Esiste un comando per elencare i servizi che vengono eseguiti all'avvio? Immagino che implicherebbe l'analisi di /etc/init.d/ e le varie directory /etc/rc.* .

    
posta Eric H 29.07.2010 - 01:40

7 risposte

102

Puoi semplicemente usare il comando initctl list shell per elencare il contenuto di /etc/init piuttosto che il comando dbus-send suggerito.

    
risposta data Scott 13.10.2010 - 04:04
95

La risposta rapida è: dipende dal tuo sistema init .

La risposta lunga è: per le versioni correnti di Ubuntu, probabilmente hai un mix di Upstart e SystemV . Le versioni più recenti di Ubuntu dopo il 15.04 "Vivid Vervet" (e altre distribuzioni Linux come RHEL / CentOS 7) si stanno muovendo per utilizzare SystemD .

Upstart

Per elencare tutti i servizi:

initctl list

Per elencare tutti i servizi Upstart ed eseguire initctl show-config su di essi, questo one-liner potrebbe essere utile:

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

Sistema V

Per elencare tutti i servizi:

service --status-all

O:

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

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

systemd

Per elencare tutti i servizi:

systemctl list-unit-files --type=service

O:

ls /lib/systemd/system/*.service /etc/systemd/system/*.service
    
risposta data TrinitronX 27.09.2015 - 05:49
13

Le directory /etc/init.d e /etc/rc.* sono state sostituite dallo strumento di inizializzazione ' upstart '. Sebbene gli script in queste directory vengano eseguiti come previsto, il nuovo metodo per eseguire le cose su init è definito dai file in /etc/init/

È possibile elencare tutti i lavori di upstart con l'interrogazione di upstart su dbus:

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

Potrebbe essere necessario modificare 0_6 per riflettere la versione di upstart che hai. Questo comando funziona sulla mia installazione lucida.

    
risposta data Jeremy Kerr 29.07.2010 - 05:30
12

Se vuoi una buona rappresentazione grafica dei servizi e il tempo necessario per avviare prova:

apt-get install bootchart
    
risposta data john 13.10.2010 - 05:39
11

Id usa initctl show-config <servicename> per ottenere veramente i dettagli di quando / se il servizio verrà avviato durante l'avvio.

Così:

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

O per NFS4 idmap-daemon:

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

chkconfig è preferibile solo su sistemi basati su RedHat imho.

    
risposta data CBmemnon 21.07.2014 - 12:46
8

In 12.04 potremmo usare:

sudo apt-get install chkconfig
chkconfig --list

ma era rimosso in 12.10 .

Output di esempio:

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

Uso di 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)}}'

Output di esempio:

$ 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
    
risposta data Carlos Alvsan 07.01.2017 - 17:04

Leggi altre domande sui tag