Ich suche nach einer Möglichkeit, eine Liste aller Dienste (/etc/init.d oder upstart oder systemd) zu erhalten, die boot starten (oder gestartet wurden) sollen.
Wie bekommt man eine Liste aller Startdienste? - Ich kenne diese Frage, und es schlägt vor, zu verwenden service --status-all
.
Aber das zeigt mir nicht, welche Dienste laufen sollen . Es ruft alle Init - Skripte mit " status
" Argument auf. Dies ist eine Liste aller Dienste, die ausgeführt werden könnten.
Ich würde aber gerne wissen, ob ein Dienst, der beim Booten gestartet wurde, noch läuft.
Beispiel…
Ich habe WebFS installiert. Aber ich möchte nicht, dass es beim Booten läuft. Ich kann es somit deaktiviert: sudo update-rc.d webfs disable
. Und ich habe auch Samba installiert und es sollte beim Booten laufen. Aber es wird gestoppt (aus welchem Grund auch immer). sudo service --status-all
hilft mir hier nicht:
$ sudo service --status-all 2>/dev/null | grep -E 'samba$|webfs'
[ - ] samba
[ - ] webfs
Beide sind ausgeschaltet, aber ich habe keine Ahnung, dass einer (Samba) eingeschaltet sein soll.
So…
Wie kann ich eine Liste aller Dienste erhalten, die beim Booten starten? Und als Erweiterung gibt es eine einfache Möglichkeit, den "Status" dieser Dienste abzurufen (wenn nicht, gehe ich einfach über diese Liste und führe "service $ service status" oder so etwas aus).
Danke, Alexander
Bearbeiten 04.05.2015: Ich bin auf Ubuntu 14.04.
Der Schwerpunkt dieser Frage liegt auf:
Ich würde aber gerne wissen, ob ein Dienst, der beim Booten gestartet wurde, noch läuft.
Aus diesem Grund initctl list
hilft nicht viel. Dabei werden die von /etc/init.d
Skripten gestarteten Dienste nicht wirklich berücksichtigt (im Vergleich zu Upstart-Skripten in /etc/init
).
Auch eine Auflistung von /etc/rc?.d/S*
hilft nicht. Es wird eine Liste von Diensten generiert, die möglicherweise in einem bestimmten Runlevel gestartet wurden. Es wird mir nicht angezeigt, ob ein Dienst, der hätte gestartet werden sollen, noch ausgeführt wird.
Grundsätzlich suche ich so etwas wie svcs -x
Solaris für Ubuntu. Mit svcs -x
hätte ich ausgegeben, wenn ein Dienst, der gestartet wurde, nicht mehr läuft. Das würde ich auch für Ubuntu brauchen.
Grund: Ich hätte gerne einen (mehr oder weniger ...) generischen Check für unser Icinga / Nagios-Überwachungssystem, der mich benachrichtigt, wenn ein Dienst nicht mehr ausgeführt wird, der ausgeführt werden sollte. Da wir viele verschiedene Server für viele verschiedene Kunden haben, ist es nicht wirklich skalierbar, eine Liste "wichtiger" Dienste zu definieren.
initctl list
welche Prozesse gestartet / ausgeführt werden.
initctl list
. Aber das beantwortet es nicht wirklich, da es auch manuell gestartete Dienste anzeigen würde. Und es werden keine Dienste angezeigt, die nicht ausgeführt werden.