Frage Befehl zum Auflisten von Diensten, die beim Start gestartet werden?


Gibt es einen Befehl zum Auflisten von Diensten, die beim Start ausgeführt werden? Ich denke, es würde Parsing beinhalten /etc/init.d/und die verschiedenen /etc/rc.* Verzeichnisse.


119
2017-07-28 23:40


Ursprung




Antworten:


Sie können einfach die verwenden initctl list Shell-Befehl zum Auflisten des Inhalts von /etc/init eher als vorgeschlagen dbus-send Befehl.


102
2017-10-13 02:04





Die schnelle Antwort ist: Es hängt von dir ab init System.

Die lange Antwort ist: Für aktuelle Versionen von Ubuntu haben Sie wahrscheinlich eine Mischung aus Emporkömmling, und SystemV. Neuere Versionen von Ubuntu nach 15.04 "Vivid Vervet" (und andere Linux-Distributionen wie RHEL / CentOS 7) ziehen um SystemD.

Emporkömmling

Um alle Dienste aufzulisten:

initctl list

Um alle Upstart-Dienste aufzulisten und auszuführen initctl show-config Auf ihnen kann dieser One-Liner hilfreich sein:

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

System V

Um alle Dienste aufzulisten:

service --status-all

ODER:

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

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

SystemD

Um alle Dienste aufzulisten:

systemctl list-unit-files --type=service

ODER:

ls /lib/systemd/system/*.service /etc/systemd/system/*.service

85
2017-09-27 03:49



Dies sollte die akzeptierte Antwort sein. - sjas


Das /etc/init.d und /etc/rc.* Verzeichnisse wurden durch die "ersetztupstart'Init-Werkzeug. Obwohl Skripts in diesen Verzeichnissen wie erwartet ausgeführt werden, wird die neue Methode zum Ausführen von Dingen in Init von Dateien in definiert /etc/init/

Sie können alle Upstart-Jobs auflisten, indem Sie den Upstart über dbus abfragen:

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

Sie müssen möglicherweise ändern 0_6 um die Version von Upstart zu reflektieren, die Sie haben. Dieser Befehl funktioniert bei meiner luziden Installation.


13
2017-07-29 03:30



@Eric H: Kannst du die Antwort unten stattdessen als richtig einstellen - initctl list ist viel schöner als dieser dbus Befehl. Ich möchte diese Antwort hier als Referenz hinterlassen (anstatt sie vollständig zu löschen). - Jeremy Kerr


Wenn Sie eine schöne grafische Darstellung der Dienste und der Zeit benötigen, die Sie zum Starten benötigen, versuchen Sie Folgendes:

apt-get install bootchart

12
2017-10-13 03:39





Id verwenden initctl show-config <servicename> um wirklich zu erfahren, wann / wenn Ihr Dienst während des Bootens gestartet wird.

Wie so:

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

Oder für NFS4 idmap-daemon:

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

chkconfig ist nur auf RedHat-basierten Systemen imho vorzuziehen.


11
2017-07-21 10:46



Dies ist die richtige Antwort. Ich habe keine Ahnung, warum all die falschen und unvollständigen Antworten so stark aufgewertet werden. - Cerin
Dies funktioniert für Leute, die SysV benutzen, ich stimme zu, dass es eine gute Antwort ist, aber es ist unvollständig. - Gabriel Netto


Am 12.04 konnten wir verwenden:

sudo apt-get install chkconfig
chkconfig --list

aber es war entfernt in 12.10.

Beispielausgabe:

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

8
2018-03-06 06:26



Funktioniert nicht in Ubuntu. Pakete.ubuntu.com/... - A.B.
@A.B. danke für die Information! Es ist selten, dass Downvoters heutzutage kommentieren: Es erfordert Mut und erlaubt mir zu lernen. aktualisiert mit der Version, in der es funktioniert. - Ciro Santilli 新疆改造中心 六四事件 法轮功
Auf präzise: packages.ubuntu.com/precise/chkconfig - Ciro Santilli 新疆改造中心 六四事件 法轮功


Mit 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)}}'

Beispielausgabe:

$ 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

-2
2018-01-07 16:04