Команда Systemctl для відображення підсумків запущених служб


12

Яку systemctlопцію чи команду я використовую для відображення підсумків усіх поточних служб?


Ви повинні прийняти відповідь @Zanna. Це набагато більше вирішує ваше питання, як і моє, навіть якщо це також є правильним підходом.
Videonauth

Відповіді:


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 --type=service --state=active list-units

У якому перераховані всі активні служби, включаючи ті, що вийшли. Якщо ви тільки після тих, хто працює в цей момент, ви можете використовувати:

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

3
systemctlКоманда без підкоманду передбачає list-units, так що ... systemctl --type-service --state=running, або просто звичайна systemctlдля швидкого використання.
муру


4

Оглянувши довше, ніж потрібно, я придумав цей дещо інший метод визначення служб, що працюють. Він також показує, як рахувати кількість запущених служб. Цей спосіб гарантує, що не випадково щось вловить слово, що працює або послуга, у самій назві послуг.

# 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}'
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.