Listar servicios con systemctl en linux.
Un servicio en Linux, es una herramienta o aplicación que se ejecuta en segundo plano. Los servicios se pueden iniciar bajo demanda o en el momento de arrancar el sistema, todo depende de tus necesidades. Servicios comunes, pueden ser: las herramientas de un servidor web, tareas cron o el mismo ssh, entres otros muchos que se ejecutan en linux.
Aprender a listar servicios en linux, es una tarea importante; es la forma más rápida de identificar un problema, para posteriormente depurarlo. Le pese a quien le pese, las distribuciones linux más conocidas usan systemd como sistema de inicio y administrador de servicios, por tanto, en este artículo veremos como listar servicios con la herramienta systemctl.
Listar servicios con systemctl
Listar servicios con systemctl en linux
Systemd utiliza un concepto de módulos, que los podemos diferenciar por servicios, sockets, puntos de montaje, dispositivos, etc. Los módulos están definidos por archivos de texto con la extensión ini. Estos archivos contienen información y detalles, además de su configuración y los comandos que se deben ejecutar.
Las extensiones de archivo determinan su tipo. Por ejemplo, los archivos de los módulos de servicio del sistema tienen la extensión .service, y estos son los que nos interesan.
Podemos obtener un listado de todas las unidades de servicio cargadas y activas, con el siguiente comando.
sudo systemctl list-units --type service
El resultado está dividido en cinco columnas, además tiene un formato totalmente legible para humanos. Las columnas se identifican como…
- UNIT – Nombre de la unidad de servicio.
- LOAD – Nos indica si está cargado en la memoria.
- ACTIVE – Estado de activación del archivo del módulo de alto nivel.
- SUB – Estado de activación del archivo de unidad de bajo nivel.
- DESCRIPTION – Ofrece una breve descripción.
Un ejemplo…
root@sololinux:~# sudo systemctl list-units --type service UNIT LOAD ACTIVE SUB DESCRIPTION accounts-daemon.service loaded active running Accounts Service acpid.service loaded active running ACPI event daemon alsa-restore.service loaded active exited Save/Restore Sound Card St apparmor.service loaded active exited AppArmor initialization avahi-daemon.service loaded active running Avahi mDNS/DNS-SD Stack binfmt-support.service loaded active exited Enable support for additio blk-availability.service loaded active exited Availability of block devi clean-mount-point@media-sergio-MEMORIA\x20USB.service loaded active running Clea console-setup.service loaded active exited Set console font and keyma cron.service loaded active running Regular background program cups-browsed.service loaded active running Make remote CUPS printers cups.service loaded active running CUPS Scheduler dbus.service loaded active running D-Bus System Message Bus exim4.service loaded active running LSB: exim Mail Transport A finalrd.service loaded active exited Create final runtime dir f getty@tty1.service loaded active running Getty on tty1 grub-common.service loaded active exited LSB: Record successful boo hddtemp.service loaded active exited LSB: disk temperature moni irqbalance.service loaded active running irqbalance daemon
El comando anterior, solo lista los servicios cargados y activos. Si quieres verlos todos, ejecuta el comando siguiente.
sudo systemctl list-units --type service --all
La imagen de ejemplo habla por si sola.
Listar servicios con systemctl – Cargados y sin cargar
También podemos ver todos los archivos de módulo instalados.
sudo systemctl list-unit-files
En este caso también usamos una imagen como ejemplo. Es para que veas como se diferencian las salidas, mediante colores.
Archivos de módulo instalados – Listar servicios
Si lo que realmente te interesa, es conocer el estado de un servicio en particular. La sintaxis es sencilla.
sudo systemctl status [servicio].service
En nuestro ejemplo vemos el estado de «cups«.
sudo systemctl status cups.service
Como puedes ver, el servicio cups está habilitado y corriendo.
root@sololinux:~# sudo systemctl status cups.service ● cups.service - CUPS Scheduler Loaded: loaded (/lib/systemd/system/cups.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2021-02-09 12:31:46 EET; 3h 9min ago Docs: man:cupsd(8) Main PID: 641 (cupsd) Tasks: 1 (limit: 4521) CGroup: /system.slice/cups.service └─641 /usr/sbin/cupsd -l feb 09 12:31:46 sololinux systemd[1]: Started CUPS Scheduler. root@sololinux:~#
Explicamos los indicadores del ejemplo anterior:
- Loaded – Nos indica si está cargado y, la ruta del servicio.
- Active – Identifica si está activo y ejecutándose.
- Docs – Documentación.
- Process – Información sobre los procesos del servicio. En nuestro ejemplo no se utiliza, por eso no existe ningún proceso.
- Main PID – PID del servicio (identificador).
- Tasks – Número de tareas por unidad y su límite máximo.
- CGroup – Información relacionada sobre los grupos de control del servicio.
Como último aporte del artículo «Listar servicios con systemctl en linux», vemos una opción que tan solo nos indica si el servicio está activo.
systemctl is-active [servicio].service
Ejemplo…
systemctl is-active cups.service
Servicio activo – Listar servicios con systemctl
Canales de Telegram: Canal SoloLinux – Canal SoloWordpress
Espero que este artículo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales. Listar servicios con systemctl en linux.