Quelle option ou commande systemctl
utiliserais-je pour afficher un résumé de tous les services en cours d'exécution?
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
C'est (voir man 1 systemctl
):
systemctl list-units | grep -E 'service.*running'
ou (voir aussi man 8 service
)
service --status-all
Où [+]
indique les services en cours d'exécution.
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}'