Comando Systemctl para mostrar un resumen de los servicios en ejecución

12

¿Qué systemctlopción o comando usaría para mostrar un resumen de todos los servicios actualmente en ejecución?

usuario4656368
fuente
Deberías aceptar la respuesta de @Zanna. es mucho más importante abordar su pregunta como la mía, incluso si es un enfoque válido también.
Videonauth

Respuestas:

20

Podrías usar algunas de systemctllas opciones de:

-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.

Entonces probablemente quieras:

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

Que enumera todos los servicios activos, incluidos los que han salido. Si solo está buscando los que se están ejecutando en este momento, puede usar:

systemctl --type=service --state=running list-units
Zanna
fuente
3
El systemctlcomando sin subcomandos asume list-units, entonces ... systemctl --type-service --state=running, o simplemente un systemctluso simple.
muru
11

Es (ver man 1 systemctl):

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

o (ver también man 8 service)

service --status-all

Donde [+]indica los servicios que realmente se están ejecutando.

Videonauth
fuente
4

Después de buscar por más tiempo del necesario, se me ocurrió este método ligeramente diferente para determinar la ejecución de servicios. También muestra cómo contar la cantidad de servicios en ejecución. De esta forma, se garantiza que no se detecta accidentalmente algo con la palabra en ejecución o servicio en el nombre del servicio en sí.

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