web-dev-qa-db-fra.com

Commande Systemctl pour afficher un résumé des services en cours d'exécution

Quelle option ou commande systemctl utiliserais-je pour afficher un résumé de tous les services en cours d'exécution?

12
user4656368

Vous pouvez utiliser certaines des options de 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.

Alors probablement vous voulez:

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

Qui répertorie tous les services actifs, y compris ceux qui sont sortis. Si vous êtes seulement après ceux qui courent en ce moment, vous pouvez utiliser:

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

C'est (voir man 1 systemctl ):

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

ou (voir aussi man 8 service )

service --status-all

[+] indique les services en cours d'exécution.

11
Videonauth

Après avoir regardé autour de moi plus longtemps que nécessaire, j'ai proposé cette méthode légèrement différente de détermination des services en cours d'exécution. Il montre également comment compter le nombre de services en cours d'exécution. De cette manière, le contenu ou le service en cours d’exécution dans le nom du service lui-même n’intercepte pas accidentellement quelque chose.

# 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
Sysinfo.io