Cuando trabajamos en distribuciones Linux debemos saber que en segundo plano se ejecutan servicios y demonios (nada que ver con Halloween) que tienen una incidencia directa en la forma como las tareas se llevan a cabo en Linux, muchos de estos servicios se inician desde el momento en que encendemos el equipo y en las distribuciones modernas estos servicios son lanzados por systemd, y sus detalles se alojan en la ruta /usr/lib/systemd.
systemd se ha desarrollado como un administrador de sistemas y servicios gracias al cual es posible realizar diversas tareas para gestionar las acciones de sistema lo cual abarca los servicios y demonios.
Systemctl es usado controlar el estado del administrador de sistemas y servicios systemd y gracias a su uso podremos llevar a cabo diferentes tareas de información sobre los servicios o demonios que actualmente se están ejecutando en el sistema usado.
Solvetic te explicará en detalle cómo usar systemctl en Linux, para este caso usaremos Ubuntu 22.04 pero este proceso aplica para las distribuciones basadas en Systemd, para comprobar si usamos o no Systemd abrimos la terminal y ejecutamos:
pstree | head -5
Allí validamos que se hace uso de systemd.
Cómo usar systemctl en Linux
Listamos los servicios activos con la orden:
systemctl --type=service --state=running
Usamos las teclas de dirección hacia la derecha o hacia abajo para ver más resultados:
Las columnas que se despliegan son:
- UNIT: es el nombre del servicio o demonio y su nombre se debe a que todo su contenido se hizo a través de la información systemd la cual está en un archivo de unidad
- LOAD: es el estado de carga del servicio, las opciones son loaded, not-found, bad-setting, error o masked
- ACTIVE: es el estado general actual del servicio o demonio, las opciones son active (activo), reloading
- (recargándose) , inactive (inactivo), failed (fallido) , activating (activándose) o deactivating (desactivándose)
- SUB: indica el subestado del servicio o demonio, las opciones dead (muerto) , exited (cerrado), failed (fallido), inactive (inactivo) o running (corriendo)
- DESCRIPTION: es una referencia del servicio o demonio desplegado
Es posible buscar por un servicio en especial:
systemctl --type=service --state=running | grep "servicio"
Listamos los servicios fallidos:
systemctl --type=service --state=failed
Es posible listar dos estados y estos deben ir separados por coma:
systemctl --type=service --state=failed,exited
Veremos el listado completo de servicios que pueden tener ambos estados:
A tener en cuenta, las siguientes ordenes generan el mismo resultado:
- sudo systemctl list-units --type=service --state=running
- sudo systemctl --type=service --state=running
Listamos las unidades de archivos:
systemctl list-unit-files --state=enabledEl resultado tendrá colores para una mejor comprensión de estos:
Encontramos detalles como:
- nombre de la unidad
- estado actual
- estado del proveedor
Lista todas las unidades de archivos sin especificar su estado:
systemctl list-unit-files
Podemos ver que están todas las unidades con los diferentes estados disponibles, usamos la flecha hacia abajo para seguir validando.
Es posible listar estados en simultáneo separados por coma:
systemctl list-unit-files --state=enabled,failed
Validamos el estado actual de un servicio:
systemctl status servicio
Esto nos entrega detalles como:
- estado en tiempo real del servicio
- Fecha del reporte
- PID usado con su estado
- Uso de CPU
Systemctl es de gran ayuda para administrar de forma centralizada todos los servicios en Linux y recordemos que un servicio con fallo o mal configurado puede desencadenar un grupo de fallas que inestabilizan desde las aplicaciones usadas hasta el propio sistema operativo pero con la explicación de Solvetic podrás mantener un sistema estable.