it-swarm.it

Comando per elencare i servizi che iniziano all'avvio?

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

142
Eric H

Puoi semplicemente usare il comando initctl list Shell per elencare il contenuto di /etc/init anziché il comando suggerito dbus-send.

104
Scott

La risposta rapida è: dipende dal sistema init.

La risposta lunga è: per le versioni attuali di Ubuntu, probabilmente hai un mix di pstart e SystemV . Le versioni più recenti di Ubuntu dopo il 15.04 "Vivid Vervet" (e altre distro Linux come RHEL/CentOS 7) stanno iniziando a usare SystemD .

Parvenu

Per elencare tutti i servizi:

initctl list

Per elencare tutti i servizi Upstart ed eseguire initctl show-config su di essi, questo one-liner può 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
117
TrinitronX

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

È possibile elencare tutti i processi upstart eseguendo una query 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.

13
Jeremy Kerr

Se vuoi una bella rappresentazione grafica dei servizi e del tempo necessario per l'avvio, prova:

apt-get install bootchart
12
john

Id utilizzare initctl show-config <servicename> per ottenere davvero 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 demone idmap NFS4:

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

11
CBmemnon

Il 12.04 potremmo usare:

Sudo apt-get install chkconfig
chkconfig --list

ma era rimosso in 12.1 .

Uscita campione:

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

Per Ubuntu 18.04 usare:

systemctl list-units --type=service

invece di :

initctl

A partire da Ubuntu 16.04, initctl è stato sostituito da systemd. https://www.linuxtricks.fr/wiki/systemd-les-commandes-essentielles (FR_fr)

(Se può aiutare @ sanjay-manohar)

1
AppyGG

Oltre ai servizi di sistema e agli script in:

/etc/init.d/
[. .____] /lib/systemd/system/
/etc/systemd/system/

Probabilmente ci sono anche AutoStart Applications, ad esempio:

find / -name "*autostart*"

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