Команда Systemctl для отображения сводки рабочих сервисов

Который systemctl опция или команда я использовал бы для отображения сводки всех сервисов, в настоящее время работающих?

12
задан 14 November 2017 в 10:00

3 ответа

Вы можете использовать некоторые из опций 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 --type=service --state=active list-units

В котором перечислены все активные сервисы, включая те, которые вышли. Если вы только после тех, кто работает в данный момент, вы можете использовать:

systemctl --type=service --state=running list-units
20
ответ дан 23 November 2019 в 03:29

Это (см. man 1 systemctl):

systemctl list-units | grep -E 'service.*running'

или (см. также man 8 service)

service --status-all

Где [+] указывает на сервисы, которые на самом деле работают.

11
ответ дан 23 November 2019 в 03:29

После оглядывания для дольше, чем необходимый я придумал этот немного отличающийся метод определения рабочих сервисов. Это также показывает, как считать номер рабочих служб. Этот путь гарантирует что не случайно ловля чего-то с выполнением слова или обслуживанием на само сервисное название.

# 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}'
4
ответ дан 23 November 2019 в 03:29

Другие вопросы по тегам:

Похожие вопросы: