Polecenie, aby wyświetlić listę usług rozpoczynających się przy uruchomieniu?

144

Czy istnieje polecenie, aby wyświetlić listę usług uruchamianych podczas uruchamiania? Wyobrażam sobie, że wiązałoby się to z parsowaniem /etc/init.d/i różnymi /etc/rc.*katalogami.

Eric H.
źródło

Odpowiedzi:

104

Możesz po prostu użyć initctl listpolecenia powłoki, aby wyświetlić zawartość /etc/initzamiast sugerowanego dbus-sendpolecenia.

Scott
źródło
1
Czy to działa w Ubuntu 18.04? Dostaję „initctl: polecenie nie znaleziono” (w bash)
Sanjay Manohar
121

Szybka odpowiedź brzmi: to zależy od twojego initsystemu.

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 .

Dorobkiewicz

Aby wyświetlić listę wszystkich usług:

initctl list

Aby wyświetlić listę wszystkich usług Upstart i uruchomić initctl show-configna nich, ten linijka może być pomocna:

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

System V.

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/

SystemD

Aby wyświetlić listę wszystkich usług:

systemctl list-unit-files --type=service

LUB:

ls /lib/systemd/system/*.service /etc/systemd/system/*.service
TrinitronX
źródło
9
To powinna być zaakceptowana odpowiedź.
sjas,
service --status-allNIE pokazuje, czy usługi są uruchomione podczas rozruchu, przynajmniej nie w Ubuntu 16. Pokazuje, czy usługi są obecnie uruchomione, czy nie.
Wildcard
1
Musiałem sudo service --status-allzdobyć wszystkie usługi, żeby się pojawiły. Kilka zostało ukrytych, gdy działałem tylko service --status-allna koncie innym niż root.
Phlucious
@Phlucious: Dzięki, że o tym wspomniałeś. Sądziłem, że było dobrze wiadomo, że polecenia te są zwykle uruchamiane jako root ( systemctl, service, initctl...), ponieważ są one zwykle uważane polecenia administracji systemu.
TrinitronX
13

/etc/init.dI /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_6celu odzwierciedlenia posiadanej wersji upstart. To polecenie działa w mojej świadomej instalacji.

Jeremy Kerr
źródło
3
@Eric H: Czy zamiast tego możesz ustawić poprawną odpowiedź poniżej - initctl listjest o wiele ładniejsza niż to polecenie dbus. Chciałbym jednak zostawić tę odpowiedź tutaj w celach informacyjnych (zamiast całkowicie ją usuwać).
Jeremy Kerr
12

Jeśli chcesz ładną graficzną reprezentację usług i czasu potrzebnego do uruchomienia, spróbuj:

apt-get install bootchart
BuZZ-dEE
źródło
11

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.

CBmemnon
źródło
1
To jest poprawna odpowiedź. Nie mam pojęcia, dlaczego wszystkie błędne i niepełne odpowiedzi są tak wysoko oceniane.
Cerin,
1
To najdziwniejsza praca dla osób korzystających z SysV, zgadzam się, że to dobra odpowiedź, ale jest niekompletna.
Gabriel Netto,
9

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
Ciro Santilli
źródło
2
Nie działa w Ubuntu. packages.ubuntu.com/…
AB
@AB dzięki za poinformowanie mnie! Downvoters rzadko dziś komentuje: wymaga odwagi i pozwala mi się uczyć. zaktualizowano do wersji, w której działa.
Ciro Santilli 24 改造 中心 法轮功 六四 事件
On Precise: packages.ubuntu.com/precise/chkconfig
Ciro Santilli 24 改造 中心 法轮功 六四 事件
0

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"
Noam Manos
źródło
-2

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
Carlos Alvsan
źródło