Sie sollten die Antwort von @Zanna akzeptieren. Es geht viel mehr um Ihre Frage als meine, auch wenn es auch ein gültiger Ansatz ist.
Videonauth
Antworten:
20
Sie können einige der folgenden systemctlOptionen verwenden:
-t, --type=
The argument should be a comma-separated list of unit types such as
service and socket.
If one of the arguments is a unit type, when listing units, limit
display to certain unit types. Otherwise, units of all types will
be shown.
As a special case, if one of the arguments is help, a list of
allowed values will be printed and the program will exit.
--state=
The argument should be a comma-separated list of unit LOAD, SUB, or
ACTIVE states. When listing units, show only those in the specified
states. Use --state=failed to show only failed units.
As a special case, if one of the arguments is help, a list of
allowed values will be printed and the program will exit.
Hier werden alle aktiven Dienste aufgelistet, einschließlich derjenigen, die beendet wurden. Wenn Sie nur nach denen suchen, die gerade ausgeführt werden, können Sie Folgendes verwenden:
Der systemctlBefehl ohne Unterbefehle geht davon aus list-units, dass ... systemctl --type-service --state=runningoder nur eine Ebene systemctlfür die schnelle Verwendung.
Nachdem ich mich länger als nötig umgesehen hatte, kam ich auf diese etwas andere Methode zur Bestimmung der ausgeführten Dienste. Es wird auch gezeigt, wie die Anzahl der ausgeführten Dienste gezählt wird. Auf diese Weise wird sichergestellt, dass nicht versehentlich etwas mit dem Wort "running" oder "service" im Namen des Dienstes selbst abgefangen wird.
# Output all active services:
systemctl -t service --state=active --no-pager --no-legend
# Count of all active services:
systemctl -t service --state=active --no-pager --no-legend | grep -c -
# Output all running services:
systemctl -t service --state=active --no-pager --no-legend | egrep '^*\.service.*running'
# Count of all running services:
systemctl -t service --state=active --no-pager --no-legend | egrep '^*\.service.*running' -c -
# Output only the service and its description:
systemctl -t service --state=active --no-pager --no-legend | egrep '^*\.service.*running' | awk 'BEGIN { FS = " ";} {for (i = 2; i <= 4; i++) { $i = "" }; print}'
Antworten:
Sie können einige der folgenden
systemctl
Optionen verwenden:Also möchten Sie wahrscheinlich:
Hier werden alle aktiven Dienste aufgelistet, einschließlich derjenigen, die beendet wurden. Wenn Sie nur nach denen suchen, die gerade ausgeführt werden, können Sie Folgendes verwenden:
quelle
systemctl
Befehl ohne Unterbefehle geht davon auslist-units
, dass ...systemctl --type-service --state=running
oder nur eine Ebenesystemctl
für die schnelle Verwendung.Es ist (siehe
man 1 systemctl
):oder (siehe auch
man 8 service
)Wobei das
[+]
angibt, welche Dienste tatsächlich ausgeführt werden.quelle
Nachdem ich mich länger als nötig umgesehen hatte, kam ich auf diese etwas andere Methode zur Bestimmung der ausgeführten Dienste. Es wird auch gezeigt, wie die Anzahl der ausgeführten Dienste gezählt wird. Auf diese Weise wird sichergestellt, dass nicht versehentlich etwas mit dem Wort "running" oder "service" im Namen des Dienstes selbst abgefangen wird.
quelle