Frage Wie listet man alle aktivierten Dienste von systemctl auf?


Wie kann ich alle auflisten? enabled Dienstleistungen von systemctl?

Ich kenne systmctl listet alle Dienste auf, aber ich möchte nur die enabled Einmal.


137
2017-07-05 18:17


Ursprung


Was meinst du mit aktiviert? Sie meinen Dienste, die ausgeführt werden? - Gen
@Gen, das einen Dienst aktiviert, unterscheidet sich ziemlich davon, es zu starten. Sehen man systemctl. - Jos
Nur damit du es weißt, ich habe meine Antwort aktualisiert.


Antworten:


systemctl list-unit-files | grep enabled wird alle auflisten aktiviert Einsen.

Wenn du willst, welche gerade sind Laufen, du brauchst systemctl | grep running.

Verwenden Sie das, wonach Sie suchen. Aktiviert bedeutet nicht, dass es ausgeführt wird. Und Laufen bedeutet nicht, dass es aktiviert ist. Sie sind zwei verschiedene Dinge.

Aktiviert bedeutet, dass das System den Dienst beim nächsten Start ausführt. Wenn Sie also einen Dienst aktivieren, müssen Sie ihn manuell starten oder neu starten und er wird gestartet.

Laufen bedeutet, dass es gerade läuft, aber wenn es nicht aktiviert ist, wird es beim Neustart nicht neu gestartet.


203
2017-07-05 18:52



Es ist ärgerlich, ein externes Tool (Grep) verwenden zu müssen, um diese wichtigen Informationen anzuzeigen. Aber danke, dass du uns den Weg gezeigt hast :) - Felipe Alvarez
@FelipeAlvarez Korrigieren. Aber so funktioniert Linux. Viele kleine Binärdateien, die gut miteinander funktionieren. systemctl erledigt, was verlangt wird, listet Dienste auf. In systemctl ist kein Filterbefehl integriert, da grep bereits vorhanden ist und dies mit der Ausgabe eines Programms gut tun kann. So war es schon immer :) - Dorian
Ich stimme zu und so sollte es sein. Aber, Systemd versucht bereits so viel zu tun, dass ich mich frage, warum es keine aktivierten Dienste auflisten kann? - Felipe Alvarez
systemctl | grep running liste mir nichts auf! Auch wenn etwas läuft wird nur wie für seinen Status aufgelistet: enabled, disabled, masked, static - Cirelli94
Einfacher: systemctl list-unit-files --state=running - Will


man systemctl Zustände:

--state=

Das Argument sollte eine durch Kommas getrennte Liste von Einheiten sein LOAD, SUB, oder ACTIVE Zustände. Zeigen Sie beim Auflisten von Einheiten nur die in den angegebenen Status an. Benutzen --state=failed um nur fehlerhafte Einheiten anzuzeigen.

Erläuterung:

LOAD: Gibt an, ob die Definition der Einheit ordnungsgemäß geladen wurde.
ACTIVE: Der Aktivierungszustand auf hoher Ebene, d. H. Die Generalisierung von SUB.
SUB: Der Low-Level-Aktivierungszustand der Einheit, die Werte hängen vom Gerätetyp ab.

Sie können dies jedoch auch nur zum Anzeigen verwenden enabled Einheiten mit:

systemctl list-unit-files --state=enabled

Wenn eine Einheit ist enabled Das bedeutet, dass das System es beim Start startet. Obwohl etwas zu setzen enabled eigentlich auch nicht start Sie müssen das also manuell tun oder das System neu starten, nachdem Sie es eingestellt haben enabled.


43
2017-07-05 18:58



Beantwortet die Frage nicht; active ! = enabled. - Reinier Post
@ReinierPost: Ich kann mir nicht helfen, dass die Manpage keine Infos dazu gibt, ich habe die beste Antwort gegeben, die ich mit den Informationen hatte, die ich hatte. Wie Sie sehen können, gibt es eine andere Antwort, die akzeptiert wird.
Ich weiß, aber es ist falsch (irreführend), eine falsche Antwort unmodifiziert zu halten, und jeder scheint es zu tun, wenn es um diese spezielle Frage geht (dies ist nicht die einzige Instanz). - Reinier Post
Nein, das ist ein Grund, Ihre Antwort zu qualifizieren. - Reinier Post
Gleichzeitig aktivieren und starten: systemctl enable --now ... - Aurélien Ooms


  1. Um alle aufzulisten systemd Service, die sind state=active und sub=running

    systemctl list-units --type=service --state=running
    
  2. Um alle aufzulisten systemd serice die sind in state=active und sub entweder laufen oder verlassen

    systemctl list-units --type=service --state=active
    

Hoffe das löst das Problem.


34
2017-09-14 03:59



Definitiv eine Verbesserung der akzeptierten Antwort. Vielen Dank! - smac89


Um "aktivierte" Dienste zu sehen, einschließlich derer, die noch unter upstart / init laufen:

systemctl list-unit-files --type service --state enabled,generated

So zeigen Sie alle derzeit ausgeführten Dienste an:

systemctl list-units --type service --state running

1
2017-07-30 16:51