Risposte:
La risposta rapida è: dipende dal initsistema.
La risposta lunga è: per le versioni attuali di Ubuntu, probabilmente hai un mix di Upstart e SystemV . Le versioni più recenti di Ubuntu dopo il 15.04 "Vivid Vervet" (e altre distro Linux come RHEL / CentOS 7) si stanno muovendo per usare SystemD .
Per elencare tutti i servizi:
initctl list
Per elencare tutti i servizi Upstart ed eseguirli initctl show-config, questo one-liner può essere utile:
initctl list | awk '{ print $1 }' | xargs -n1 initctl show-config
Per elencare tutti i servizi:
service --status-all
O:
# for init scripts:
ls /etc/init.d/
# for runlevel symlinks:
ls /etc/rc*.d/
Per elencare tutti i servizi:
systemctl list-unit-files --type=service
O:
ls /lib/systemd/system/*.service /etc/systemd/system/*.service
service --status-allNON mostra se i servizi sono abilitati all'avvio, almeno non su Ubuntu 16. Mostra se i servizi sono attualmente in esecuzione o meno.
sudo service --status-allottenere tutti i servizi per mostrarmi. Alcuni sono stati nascosti quando ho eseguito solo service --status-allsu un account non root.
systemctl, service, initctl...) in quanto sono generalmente considerati comandi di amministrazione del sistema.
Le directory /etc/init.de /etc/rc.*sono state sostituite dallo upstartstrumento ' ' init. 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 lavori di avvio con una query di avvio su dbus:
dbus-send --print-reply --system --dest=com.ubuntu.Upstart \
/com/ubuntu/Upstart com.ubuntu.Upstart0_6.GetAllJobs
Potrebbe essere necessario modificare 0_6per riflettere la versione di upstart che hai. Questo comando funziona sulla mia installazione lucida.
initctl listè molto più bella di questo comando dbus. Vorrei lasciare questa risposta qui come riferimento (anziché eliminarla completamente).
Id us 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.
Il 12.04 potremmo usare:
sudo apt-get install chkconfig
chkconfig --list
ma è stato rimosso in 12.10 .
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)
Oltre ai servizi di sistema e agli script in:
/etc/init.d/
/ lib / systemd / system /
/ etc / systemd / system /
Probabilmente ci sono anche applicazioni AutoStart , ad esempio:
find / -name "*autostart*"
ls -1 "/etc/xdg/autostart" "/home/$USER/.config/autostart" "/usr/share/gdm/autostart" "/usr/share/gnome/autostart"
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)}}'
Uscita campione:
$ 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