it-swarm-eu.dev

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 stelle mir vor, es würde das Parsen von /etc/init.d/ und der verschiedenen /etc/rc.* -Verzeichnisse beinhalten.

142
Eric H

Sie können einfach den Shell-Befehl initctl list verwenden, um den Inhalt von /etc/init anstelle des vorgeschlagenen Befehls dbus-send aufzulisten.

104
Scott

Die schnelle Antwort lautet: Es hängt von Ihrem init System ab.

Die lange Antwort lautet: Für aktuelle Versionen von Ubuntu haben Sie wahrscheinlich eine Mischung aus pstart und SystemV . Neuere Versionen von Ubuntu nach 15.04 "Vivid Vervet" (und anderen Linux-Distributionen wie RHEL/CentOS 7) verwenden ab sofort SystemD .

Emporkömmling

So listen Sie alle Dienste auf:

initctl list

Um alle Upstart-Dienste aufzulisten und initctl show-config auf ihnen auszuführen, kann dieser Einzeiler hilfreich sein:

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

System V

So listen Sie alle Dienste auf:

service --status-all

ODER:

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

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

SystemD

So listen Sie alle Dienste auf:

systemctl list-unit-files --type=service

ODER:

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

Die Verzeichnisse /etc/init.d und /etc/rc.* wurden durch das Init-Tool 'upstart' ersetzt. Obwohl Skripte in diesen Verzeichnissen wie erwartet ausgeführt werden, wird die neue Methode zum Ausführen von Dingen auf init durch Dateien in /etc/init/ definiert.

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

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

Möglicherweise müssen Sie 0_6 ändern, um die Version Ihres Upstarts wiederzugeben. Dieser Befehl funktioniert bei meiner übersichtlichen Installation.

13
Jeremy Kerr

Wenn Sie eine schöne grafische Darstellung der Dienste und der zum Booten erforderlichen Zeit wünschen, versuchen Sie Folgendes:

apt-get install bootchart
12
john

Ich benutze initctl show-config <servicename>, um wirklich die Details zu erfahren, wann/ob 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
CBmemnon

Am 12.04 könnten wir verwenden:

Sudo apt-get install chkconfig
chkconfig --list

aber es war entfernt in 12.1 .

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

Für Ubuntu 18.04 verwenden Sie:

systemctl list-units --type=service

anstatt :

initctl

Ab Ubuntu 16.04 wurde initctl durch systemd ersetzt. https://www.linuxtricks.fr/wiki/systemd-les-commandes-essentielles (FR_fr)

(Wenn es @ Sanjay-Manohar helfen kann)

1
AppyGG

Neben Systemdiensten und Skripten unter:

/etc/init.d/
/lib/systemd/system/
/etc/systemd/system/

Es gibt wahrscheinlich auch AutoStart Applications, zum Beispiel:

find / -name "*autostart*"

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