Odpowiedzi:
Szybka odpowiedź brzmi: to zależy od twojego init
systemu.
Długa odpowiedź brzmi: w obecnych wersjach Ubuntu prawdopodobnie masz połączenie Upstart i SystemV . Nowsze wersje Ubuntu po 15.04 „Vivid Vervet” (i inne dystrybucje Linuksa, takie jak RHEL / CentOS 7) zaczynają korzystać z SystemD .
Aby wyświetlić listę wszystkich usług:
initctl list
Aby wyświetlić listę wszystkich usług Upstart i uruchomić initctl show-config
na nich, ten linijka może być pomocna:
initctl list | awk '{ print $1 }' | xargs -n1 initctl show-config
Aby wyświetlić listę wszystkich usług:
service --status-all
LUB:
# for init scripts:
ls /etc/init.d/
# for runlevel symlinks:
ls /etc/rc*.d/
Aby wyświetlić listę wszystkich usług:
systemctl list-unit-files --type=service
LUB:
ls /lib/systemd/system/*.service /etc/systemd/system/*.service
service --status-all
NIE pokazuje, czy usługi są uruchomione podczas rozruchu, przynajmniej nie w Ubuntu 16. Pokazuje, czy usługi są obecnie uruchomione, czy nie.
sudo service --status-all
zdobyć wszystkie usługi, żeby się pojawiły. Kilka zostało ukrytych, gdy działałem tylko service --status-all
na koncie innym niż root.
systemctl
, service
, initctl
...), ponieważ są one zwykle uważane polecenia administracji systemu.
/etc/init.d
I /etc/rc.*
katalogi zostały zastąpione przez „ upstart
” narzędzie Init. Chociaż skrypty w tych katalogach będą wykonywane zgodnie z oczekiwaniami, nowa metoda uruchamiania rzeczy na init jest zdefiniowana przez pliki w/etc/init/
Możesz wyświetlić listę wszystkich zadań upstart z pytaniem o upstart przez dbus:
dbus-send --print-reply --system --dest=com.ubuntu.Upstart \
/com/ubuntu/Upstart com.ubuntu.Upstart0_6.GetAllJobs
Może być konieczna zmiana w 0_6
celu odzwierciedlenia posiadanej wersji upstart. To polecenie działa w mojej świadomej instalacji.
initctl list
jest o wiele ładniejsza niż to polecenie dbus. Chciałbym jednak zostawić tę odpowiedź tutaj w celach informacyjnych (zamiast całkowicie ją usuwać).
Używam go, initctl show-config <servicename>
aby naprawdę uzyskać szczegółowe informacje o tym, kiedy / jeśli usługa uruchomi się podczas uruchamiania.
Tak jak:
$ initctl show-config myservice
myservice
start on runlevel [2345]
stop on runlevel [!2345]
Lub dla demona idmap-NFS4:
$ initctl show-config idmapd
idmapd
start on (local-filesystems or mounting TYPE=nfs4)
stop on runlevel [06]
Polecenie chkconfig jest preferowane tylko w systemach imho opartych na RedHat.
W dniu 12.04 moglibyśmy użyć:
sudo apt-get install chkconfig
chkconfig --list
ale został usunięty w 12.10 .
Przykładowe dane wyjściowe:
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
W przypadku Ubuntu 18.04 użyj:
systemctl list-units --type=service
zamiast :
initctl
Od wersji Ubuntu 16.04 initctl
został zastąpiony przez systemd
.
https://www.linuxtricks.fr/wiki/systemd-les-commandes-essentielles (FR_fr)
(Jeśli to może pomóc @ sanjay-manohar)
Oprócz usług systemowych i skryptów w ramach:
/etc/init.d/
/ lib / systemd / system /
/ etc / systemd / system /
Prawdopodobnie są też aplikacje AutoStart , na przykład:
find / -name "*autostart*"
ls -1 "/etc/xdg/autostart" "/home/$USER/.config/autostart" "/usr/share/gdm/autostart" "/usr/share/gnome/autostart"
Za pomocą 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)}}'
Przykładowe dane wyjściowe:
$ 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