¿Cómo puedo listar todos los servicios habilitados
desde systemctl
?
Sé que ejecutar el comando systemctl
por sí mismo muestra todos los servicios, pero me gustaría obtener sólo los habilitados
.
systemctl list-unit-files | grep enabled
listará todos los enabled.
Si quieres saber cuáles están ejecutando, necesitas systemctl | grep running
.
Utilice el que esté buscando. Habilitado, no significa que se esté ejecutando. Y corriendo no significa que esté habilitado. Son dos cosas diferentes.
Habilitado significa que el sistema ejecutará el servicio en el siguiente arranque. Así que si habilita un servicio, todavía tiene que iniciarlo manualmente, o reiniciar y se iniciará.
Ejecutado significa que se está ejecutando en este momento, pero si no está habilitado, no se reiniciará cuando se reinicie.
"Man Systemctl" afirma:
--state=
El argumento debe ser una lista separada por comas de los estados LOAD
, SUB
o ACTIVE
de las unidades. Al enumerar las unidades, sólo se muestran las que están en los estados especificados. Utilice --state=failed
para mostrar sólo las unidades fallidas.
Explicación:
LOAD
: Refleja si la definición de la unidad fue cargada correctamente.
ACTIVE
: El estado de activación de la unidad de alto nivel, es decir, la generalización de SUB
.
SUB
: El estado de activación de la unidad de bajo nivel, los valores dependen del tipo de unidad.
Aunque también se puede utilizar para mostrar sólo las unidades habilitadas
con:
systemctl list-unit-files --state=enabled
Si una unidad está habilitada
significa que el sistema la iniciará al arrancar. Sin embargo, al establecer algo como "habilitado", no se inicia, por lo que tendrá que hacerlo manualmente, o reiniciar el sistema después de establecerlo como "habilitado".
Para listar todos los servicios systemd
que están en state=active
y sub=running
systemctl list-units --type=service --state=running
Para listar todos los servicios systemd
que están en state=active
y sub=running` o exited
systemctl list-units --type=service --state=active