Cómo ver los servicios de Linux usando el comando systemctl



Gestionar servicios en Linux puede resultar algo complicado para quienes se inician en este sistema, sobre todo porque es crucial iniciar, detener o simplemente comprobar su funcionamiento. A veces, los servicios presentan fallos o no se comportan como se espera, por lo que saber cómo listarlos y controlarlos mediante `systemctl` resulta fundamental. Esta guía explica los comandos y trucos esenciales para mantener tu sistema Linux funcionando sin problemas y ofrece consejos prácticos, basados ​​en la experiencia adquirida al enfrentarnos a estos problemas con frecuencia.

Cómo administrar y solucionar problemas de servicios con systemctl

Lista de todos los servicios para ver qué está funcionando y qué no.

Si intentas averiguar qué servicios están cargados en tu sistema (quizás algo no funciona correctamente), el primer paso es listarlos todos. Ejecuta esto en tu terminal:

sudo systemctl list-units --type=service

Este comando te mostrará una tabla con todos los servicios, incluyendo columnas como UNIT, LOAD, ACTIVE, SUB y DESCRIPTION. En algunas configuraciones, la tabla puede resultar un poco extensa, ya que Linux suele ser muy detallado. La columna UNIT muestra el nombre del archivo, ssh.servicemientras que el estado ACTIVE indica si está en ejecución o no. Si quieres ver todos los servicios, incluidos los inactivos o con fallos, añade --all:

sudo systemctl list-units --type=service --all

Esto resulta especialmente útil si intentas localizar un servicio que sospechas que no funciona o que no está habilitado al inicio. Porque, claro, Linux tiene que complicarlo todo más que simplemente pulsar un interruptor, pero conocer estos comandos te ayuda a ver qué ocurre tras bambalinas.

Comprueba qué servicios están activos o inactivos.

Si se sospecha que un servicio específico no está funcionando o no se inicia correctamente, conviene acotar la búsqueda:

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

Este filtro muestra solo los servicios activos (en ejecución).Por el contrario, si quieres ver los servicios detenidos, ejecuta:

sudo systemctl list-units --type=service --state=inactive

Resulta útil para identificar servicios que podrían necesitar un reinicio manual o que no se inician al arrancar el sistema. Por ejemplo, si un servicio aparece inactivo pero debería estar en ejecución, es posible que deba iniciarlo manualmente.

Localiza los servicios que fallan — Porque a veces, simplemente dejan de funcionar

Si un servicio no funciona y lo ve en la lista pero en estado de error, compruebe lo siguiente:

sudo systemctl list-units --type=service --state=failed

Esto muestra cualquier servicio que no se haya iniciado o se haya bloqueado. Es un buen primer paso para solucionar problemas extraños, ya que, por mucho que reinicies algo a ciegas, te indicará si el servicio está definitivamente averiado.

Consulta qué servicios están configurados para iniciarse al arrancar el sistema.

Saber qué está habilitado al inicio puede ahorrarte muchos dolores de cabeza más adelante. Ejecutar:

sudo systemctl list-unit-files --type=service --state=enabled

Esta tabla ofrece una visión general rápida de los procesos que se ejecutan al arrancar el sistema, lo cual puede ser útil si un servicio no se inicia porque está deshabilitado o enmascarado. Para ver los servicios deshabilitados, simplemente sustitúyalo enabledpor disabled.

Obtenga detalles de un servicio específico

¿Quieres ver qué ocurre con un servicio específico? Quizás esté fallando o simplemente quieras conocer su estado, registros, uso de memoria, etc. Ejecuta:

sudo systemctl status <service-name>

Reemplázalo <service-name>con comandos como `ls` nginx.serviceo ` cups.servicels`.La salida muestra el estado actual, los registros recientes e información sobre la CPU y la memoria, como una comprobación del estado del sistema. En algunas distribuciones, puede que te resulte más útil usar `ls` journalctl -u <service-name>para obtener registros detallados.

Iniciar, detener, reiniciar y recargar servicios: para que los cambios sean permanentes.

Iniciar un servicio

Cuando necesite que un servicio esté en funcionamiento, quizás después de configurarlo, ejecute:

sudo systemctl start <service-name>

Esto pone en marcha el servicio sin problemas. Comprueba si funciona con status.

Detener un servicio

Para detener un servicio que funciona mal o es innecesario, ejecute:

sudo systemctl stop <service-name>

Reiniciar o recargar (para cambios sin interrupción)

Si editaste los archivos de configuración y quieres aplicar los cambios, lo habitual es reiniciar, pero algunos servicios admiten la recarga rápida. Para reiniciar:

sudo systemctl restart <service-name>

O, si es compatible, simplemente recargue la configuración:

sudo systemctl reload <service-name>

Nota: No todos los servicios admiten la recarga; consulte primero la documentación. Por lo general, esto es más seguro si solo realiza ajustes menores, como cambiar un parámetro de configuración.

Habilitar o deshabilitar servicios al arrancar

¿Quieres que un servicio se inicie automáticamente al arrancar el sistema? Habilítalo:

sudo systemctl enable <service-name>

Y si no quieres que se inicie más, desactívalo:

sudo systemctl disable <service-name>

Si quieres hacer ambas cosas a la vez —activar e iniciar inmediatamente— solo tienes que añadir --now:

sudo systemctl enable --now <service-name>

Servicios de mascarilla y desmascarilla: ¿Se les impide el acceso o se les vuelve a habilitar?

El enmascaramiento impide que un servicio se inicie de cualquier forma. Si desea bloquearlo:

sudo systemctl mask <service-name>

Esto vincula el servicio a /dev/null, por lo que no se puede iniciar ni manual ni automáticamente. Resulta útil si tienes un servicio que simplemente no quieres que se ejecute nunca. Para desbloquearlo, solo tienes que desenmascararlo:

sudo systemctl unmask <service-name>

Consejo: A veces, un servicio simplemente se niega a iniciarse o se queda bloqueado. Reinicia el servicio, borra la caché o incluso reinicia el equipo tras bloquearlo o desbloquearlo si la situación se complica. Sucede con más frecuencia de la que se piensa, sobre todo con servicios problemáticos o provenientes de scripts personalizados.

Resumen

Familiarizarse con systemctl es un punto de inflexión en Linux. No siempre es perfecto, y algunos comandos se comportan de forma diferente según la distribución o la versión, pero estos conceptos básicos cubren la mayoría de las situaciones, ya sea para solucionar problemas, personalizar el sistema o simplemente para configurar un servicio. Prepárese para experimentar un poco, sobre todo con servicios enmascarados, pero una vez que lo domine, controlar su sistema será mucho más sencillo.

Resumen

  • Utilice esta systemctl list-units --type=serviceinformación para ver sus servicios.
  • Consulta el estado consystemctl status <service>
  • Iniciar/detener consystemctl start/stop <service>
  • Habilitar o deshabilitar al arrancar consystemctl enable/disable <service>
  • Servicios de mascarilla o sin mascarilla si se muestran reacios.

Espero que esto le ahorre un dolor de cabeza a alguien. La administración de servicios en Linux no siempre es sencilla, pero con estos comandos, estarás mucho mejor preparado. Crucemos los dedos para que esto te sirva; funcionó en varias configuraciones, así que quizás también te funcione a ti.



¿Te resultó útil este artículo?