Hace ya algún tiempo que escribimos en el blog un tutorial de como crear servicios con systemd, pero el tema que nos ocupa hoy es como listar todas las unidades o servicios de systemd.
Dicho de otra forma, lo que vamos a conseguir es listar todos los demonios gestionados por systemd. Como suele ser habitual, nuestra maquina de pruebas es un servidor con la distribución Ubuntu.
Para listar todas las unidades activas gestionadas por systemd ejecutamos el comando:
sudo systemctl list-units
Esto nos mostrará en pantalla una lista como la siguiente, sobre la que podemos desplazarnos con las flechas arriba y abajo.
UNIT LOAD ACTIVE SUB DESCRIPTION
init.scope loaded active running System and Service Manager
session-1.scope loaded active running Session 1 of user zeokat
accounts-daemon.service loaded active running Accounts Service
apache2.service loaded active running LSB: Apache2 web server
apparmor.service loaded active exited LSB: AppArmor initialization
console-setup.service loaded active exited Set console font and keymap
cron.service loaded active running Regular background program processing daemo
dbus.service loaded active running D-Bus System Message Bus
getty@tty1.service loaded active running Getty on tty1
grub-common.service loaded active exited LSB: Record successful boot for GRUB
ifup@ens33.service loaded active exited ifup for ens33
irqbalance.service loaded active exited LSB: daemon to balance interrupts for SMP s
keyboard-setup.service loaded active exited Set console keymap
...
Vemos que tenemos cinco columnas:
- UNIT: el nombre de la unidad de configuración del servicio.
- LOAD: indica si la unidad de configuración ha sido cargada o no.
- ACTIVE: indica si la unidad de configuración está activa o no.
- SUB: indica con más detalle si la unidad de configuración se está ejecutando y cual es su estado actual.
- DESCRIPTION: una descripción corta de la unidad de configuración.
Como nosotros estamos usando el comando sudo systemctl list-units
que muestra sólo las unidades o servicios activos, los valores de la columna LOAD
serán siempre loaded
y los de la columna ACTIVE
serán siempre active
. Esta forma de mostrar los servicios es la que conseguimos también por defecto al ejecutar el comando systemctl
sin ninguna opción.
Profundizando en las diferentes opciones para listar los servicios.
Para ver todas las unidades cargadas, incluidas las que están inactivas, usaremos el comando:
sudo systemctl list-units --all
Puedes añadir algunos filtros a la hora de listar las unidades de servicio, por ejemplo:
- Con el comando
sudo systemctl list-units --all --state=inactive
muestra sólo las unidades inactivas.
- Con el comando
sudo systemctl list-units --type=service
muestra sólo las unidades de tipo servicio.
Systemd sólo carga las unidades que cree que son necesarias y estas son las que nos muestra al emplear los comandos anteriores. Si queremos mostrar todas las unidades disponibles, incluidas aquellas que systemd ha ignorado y no ha tratado de cargar, el comando que debemos ejecutar es systemctl list-unit-files
y veremos en la consola algo parecido a:
systemd-ask-password-wall.path static
systemd-networkd-resolvconf-update.path static
accounts-daemon.service enabled
apt-daily.service static
autovt@.service enabled
bootlogd.service masked
bootlogs.service masked
bootmisc.service masked
checkfs.service masked
checkroot-bootclean.service masked
checkroot.service masked
console-getty.service disabled
...