¿Cómo enumerar todos los servicios habilitados de systemctl?

Cómo puedo enumerar todos enabled servicios de systemctl?

Sé correr systemctl el comando por sí mismo enumera todos los servicios, pero me gustaría obtener solo el enabled aquel.

systemctl list-unit-files | grep enabled enumerará todos permitir aquel.

Si desea que ejecutar usted necesita systemctl | grep running.

Usar el que estás buscando. Habilitado, no significa que se esté ejecutando. Y correr no significa que esté habilitado. Son dos cosas diferentes.

Habilitado significa que el sistema ejecutará el servicio en el siguiente arranque. Por lo tanto, si habilita un servicio, aún debe iniciarlo manualmente o reiniciarlo y se iniciará.

En ejecución significa que en realidad se está ejecutando en este momento, pero si no está habilitado, no se reiniciará cuando reinicie.

man systemctl estado:

--state=

El argumento debe ser una lista de unidades separadas por comas LOAD, SUB, o ACTIVE estado. Al enumerar unidades, muestre solo aquellas en los estados especificados. Utilizar --state=failed para mostrar solo las unidades fallidas.

Explicacion:

LOAD: Refleja si la definición de unidad se cargó correctamente.
ACTIVE: El estado de activación de la unidad de alto nivel, es decir, 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 puede usar esto para mostrar solo enabled unidades con:

systemctl list-unit-files --state=enabled

Si una unidad es enabled eso significa que el sistema lo iniciará al inicio. Aunque establecer algo para enabled en realidad, tampoco start por lo tanto, deberá hacerlo manualmente o reiniciar el sistema después de configurarlo en enabled.

Para enumerar todos los systemd servicio que están en state=active y sub=running

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

Para enumerar todos los systemd serice que están en state=active y sub corriendo o saliendo

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

Para ver los servicios' habilitados', incluidos los que aún están en upstart / init, ejecute:

systemctl list-unit-files --type service --state enabled,generated

Para ver todos los servicios que se ejecutan actualmente, ejecute:

systemctl list-units --type service --state running

También descripción general de todos los servicios activos y fallidos:

systemctl list-units --type service --state running,failed

Hay una buena aplicación GUI llamada Stacer donde puede administrar todos los servicios.

enter image description here

Consulte su enlace de Github Stacer en Github
Compruebe también Web para más info

Además de las respuestas actuales, utilizo lo siguiente para obtener solo los nombres de los servicios:

systemctl list-units --type=service --state=active,running | awk '/.*\.service/ {print $1}'

En lugar del formato tabular, esto hace que sea más fácil canalizar solo esos servicios a otro programa

@ Gen habilitar un servicio es muy diferente de iniciarlo. Consulte ‘man systemctl’.

Fascinante. La respuesta con la calificación más baja es la respuesta más “correcta”, aunque claramente no es la mejor respuesta. Esta excelente pregunta (y sus respuestas) es un interesante ejemplo de cómo systemd viola los antiguos (y brillantes) principios de diseño de Unix & Co. @ FelipeAlvarez se queja de que la respuesta más aceptada asume que systemd sigue la filosofía de diseño de unix, pero systemd/systemctl puede hacer exactamente lo que quiere (la mayoría de los usuarios experimentados lo considerarán una exageración completa). Empiezo a ver más claramente por qué Linus Torvalds es tan vehementemente crítico con systemd.

¿a qué te refieres con habilitado? ¿Te refieres a servicios que se están ejecutando?