Вы должны принять ответ @Zanna. это гораздо больше относится к вашему вопросу, как мой, даже если это правильный подход.
Видеонавт
Ответы:
20
Вы можете использовать некоторые из systemctlпараметров:
-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.
Команда systemctlбез каких-либо подкоманд предполагает list-units, так что ... systemctl --type-service --state=running, или просто systemctlдля быстрого использования.
Посмотрев вокруг дольше, чем нужно, я пришел к этому немного другому методу определения запущенных сервисов. Также показано, как подсчитать количество запущенных сервисов. Этот способ гарантирует, что он не случайно поймает что-либо с помощью слова running или service в самом имени службы.
# 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}'
Ответы:
Вы можете использовать некоторые из
systemctl
параметров:Так что, вероятно, вы хотите:
Который перечисляет все активные сервисы, включая те, которые вышли. Если вы только после тех, кто работает в данный момент, вы можете использовать:
источник
systemctl
без каких-либо подкоманд предполагаетlist-units
, так что ...systemctl --type-service --state=running
, или простоsystemctl
для быстрого использования.Это (см.
man 1 systemctl
):или (см. также
man 8 service
)Где
[+]
указывает службы, которые на самом деле работают.источник
Посмотрев вокруг дольше, чем нужно, я пришел к этому немного другому методу определения запущенных сервисов. Также показано, как подсчитать количество запущенных сервисов. Этот способ гарантирует, что он не случайно поймает что-либо с помощью слова running или service в самом имени службы.
источник