¿Qué systemctl
opción o comando usaría para mostrar un resumen de todos los servicios actualmente en ejecución?
¿Qué systemctl
opción o comando usaría para mostrar un resumen de todos los servicios actualmente en ejecución?
Respuestas:
Podrías usar algunas de systemctl
las 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
systemctl
comando sin subcomandos asume list-units
, entonces ... systemctl --type-service --state=running
, o simplemente un systemctl
uso simple.
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.
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}'