.## 1. Introducción
Al usar Linux, hay muchas situaciones en las que deseas comprobar el estado de los servicios o ver una lista de procesos en ejecución. En esos casos, el comando systemctl es extremadamente útil.
Este comando funciona con systemd, el sistema de inicio y gestor de servicios utilizado en las distribuciones Linux modernas. Proporciona una amplia gama de funciones, incluyendo la comprobación del estado de los servicios (unidades), iniciar, detener, reiniciar servicios y mostrar listas de servicios.
Desde la perspectiva de una “lista de servicios systemctl”, puedes no solo ver los servicios activos actualmente, sino también los servicios deshabilitados y aquellos configurados para el inicio automático, lo que te permite comprender la configuración general del sistema desde múltiples ángulos.
Este capítulo explica brevemente qué es systemctl y describe lo que aprenderás en este artículo.
- 1 2. Cómo mostrar una lista de servicios con systemctl
- 2 3. Gestión básica de servicios con systemctl
- 3 4. Opciones Útiles de systemctl y Técnicas Avanzadas
- 4 5. Problemas Comunes y Solución de Problemas
- 5 6. Resumen
- 6 7. Preguntas Frecuentes (FAQ)
- 6.1 Q1. ¿Cuál es la diferencia entre systemctl y el comando service?
- 6.2 Q2. ¿Cuál es la diferencia entre list-units y list-unit-files?
- 6.3 Q3. ¿Se pueden iniciar servicios en un estado estático?
- 6.4 Q4. Un servicio está enmascarado y no se puede iniciar. ¿Qué debo hacer?
- 6.5 Q5. ¿Existe un método GUI para ver el estado de un servicio?
- 6.6 Q6. ¿Dónde debo colocar los archivos de unidad personalizados?
¿Qué es systemctl?
systemctl es la herramienta estándar para controlar e inspeccionar diversas “unidades” como servicios, objetivos y puntos de montaje en distribuciones Linux basadas en systemd.
Por ejemplo, se usa para iniciar o detener servicios como Apache (httpd) y SSH, así como para mostrar su estado en forma de lista.
La relación entre systemd y systemctl
systemd es el mecanismo central responsable de los procesos de inicio de Linux y la gestión de servicios, reemplazando sistemas más antiguos como SysVinit y Upstart. La herramienta de línea de comandos utilizada para interactuar con systemd es systemctl.
En otras palabras, si systemd es el centro de mando, systemctl actúa como el operador que emite instrucciones.
Qué aprenderás en este artículo
Este artículo responde a las siguientes preguntas:
- ¿Cómo puedes ver una lista de los servicios que se están ejecutando actualmente?
- ¿Cómo mostrar todos los servicios, incluidos los inactivos?
- ¿Cómo comprobar si un servicio se inicia automáticamente al arrancar?
- ¿Cómo interpretar la salida de las listas de servicios?
Para garantizar claridad para los principiantes de Linux, se proporcionan ejemplos de comandos y explicaciones detalladas de la salida.
2. Cómo mostrar una lista de servicios con systemctl
En la administración de sistemas Linux, comprender rápidamente la lista de servicios es extremadamente importante. Con el comando systemctl, puedes verificar fácilmente los servicios activos, los inactivos y la configuración de inicio.
Esta sección explica los métodos de listado de servicios desde las siguientes tres perspectivas:
- Lista de servicios activos
- Lista de todos los servicios (incluidos los inactivos)
- Lista de archivos de unidades de servicio (incluidos los ajustes de inicio)
2.1 Mostrar una lista de los servicios activos actualmente
Para comprobar los servicios que se están ejecutando en este momento, usa el siguiente comando:
systemctl list-units --type=service
Este comando muestra una lista de los servicios activos. La salida incluye los siguientes campos:
| Field | Description |
|---|---|
| UNIT | Service name (e.g., ssh.service) |
| LOAD | Whether the unit file is loaded |
| ACTIVE | Service state (e.g., active, inactive, failed) |
| SUB | More detailed status (e.g., running, exited, dead) |
| DESCRIPTION | Service description |
Esta información te permite determinar, por ejemplo, si nginx está en ejecución o qué servicios están activos actualmente.
2.2 Mostrar todos los servicios, incluidos los inactivos
Por defecto, list-units muestra solo los servicios activos. Para incluir los servicios inactivos, agrega la opción --all.
systemctl list-units --type=service --all
Esto muestra los servicios inactivos y aquellos que nunca se han iniciado.
Puedes filtrar aún más los resultados por estado del servicio usando la opción --state=:
systemctl list-units --type=service --state=inactive
Esto es útil cuando deseas ver solo los servicios detenidos.
2.3 Ver una lista de archivos de unidades de servicio
Para comprobar qué servicios están habilitados o deshabilitados al iniciar, usa el siguiente comando:
systemctl list-unit-files --type=service
Este comando muestra todos los archivos de unidades de servicio junto con sus estados habilitado o deshabilitado.
| STATE | Description |
|---|---|
| enabled | Automatically starts at boot |
| disabled | Does not start automatically |
| static | Cannot be enabled or disabled manually |
| masked | Explicitly disabled and cannot be started |
Esta lista te ayuda a comprender visualmente qué servicios se inician al arrancar y a identificar servicios que hayan sido enmascarados por error.
3. Gestión básica de servicios con systemctl
El comando systemctl te permite iniciar, detener, reiniciar servicios y configurar su comportamiento de inicio.
3.1 Iniciar un servicio
sudo systemctl start service-name
Ejemplo:
sudo systemctl start httpd.service
3.2 Detener un Servicio
sudo systemctl stop service-name
Ejemplo:
sudo systemctl stop sshd.service
3.3 Reiniciar un Servicio
sudo systemctl restart service-name
Ejemplo:
sudo systemctl restart nginx.service
3.4 Verificar el Estado de un Servicio
systemctl status service-name
Ejemplo:
systemctl status mysql.service
3.5 Habilitar Inicio Automático
sudo systemctl enable service-name
Ejemplo:
sudo systemctl enable docker.service
3.6 Deshabilitar Inicio Automático
sudo systemctl disable service-name
Ejemplo:
sudo systemctl disable cups.service
3.7 Verificar el Estado de Inicio
systemctl is-enabled service-name
enabled
4. Opciones Útiles de systemctl y Técnicas Avanzadas
4.1 Listar Dependencias de Servicios
systemctl list-dependencies service-name
4.2 Ver Contenidos de Archivos de Unidad
systemctl cat service-name

4.3 Recargar Archivos de Unidad
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
4.4 Ver Registros de Servicios
journalctl -u service-name
5. Problemas Comunes y Solución de Problemas
5.1 Cuando un Servicio Falla al Iniciarse
systemctl status service-name
journalctl -xe
5.2 Entender Mensajes de Error en la Salida de status
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled)
Active: failed (Result: exit-code)
5.3 Servicios que se Detienen Inmediatamente Después de Iniciarse
- Errores de configuración
- Conflictos de puertos
- Archivos o directorios faltantes
- Permisos insuficientes
5.4 Cuando un Servicio Está Enmascarado
sudo systemctl unmask service-name
6. Resumen
La gestión de servicios es una parte esencial de las operaciones del sistema Linux, y systemctl juega un papel central en el control y comprensión de los servicios del sistema.
7. Preguntas Frecuentes (FAQ)
Esta sección responde preguntas comunes sobre systemctl y la gestión de servicios.
Q1. ¿Cuál es la diferencia entre systemctl y el comando service?
A1.
systemctl es un comando de gestión de servicios diseñado para sistemas basados en systemd y es la herramienta estándar utilizada por la mayoría de las distribuciones modernas de Linux, como Ubuntu, CentOS y Fedora.
En contraste, el comando service se usaba con sistemas basados en SysVinit más antiguos. Aunque puede seguir existiendo por razones de compatibilidad, se recomienda encarecidamente usar systemctl en entornos systemd.
Q2. ¿Cuál es la diferencia entre list-units y list-unit-files?
A2.
list-unitsmuestra las unidades cargadas actualmente, es decir, servicios que están ejecutándose o que se han usado recientemente.list-unit-filesmuestra todos los archivos de unidad y su estado de habilitación (habilitado, deshabilitado, etc.). En resumen, uno muestra lo que está activo actualmente, mientras que el otro muestra cómo están configurados los servicios.
Q3. ¿Se pueden iniciar servicios en un estado estático?
A3.
Sí, los servicios en un estado static se pueden iniciar manualmente usando start. Sin embargo, no se pueden habilitar para inicio automático al arrancar.
Esto se debe a que los servicios estáticos están diseñados para iniciarse como dependencias de otras unidades.
Q4. Un servicio está enmascarado y no se puede iniciar. ¿Qué debo hacer?
A4.
Un servicio masked está completamente deshabilitado y no se puede iniciar. Para resolverlo, desmascare el servicio usando el siguiente comando:
sudo systemctl unmask service-name
Después de desmascararlo, puede iniciar el servicio normalmente.
Q5. ¿Existe un método GUI para ver el estado de un servicio?
A5.
Dependiendo de la distribución, herramientas como gnome-system-monitor, KSysGuard o Cockpit permiten ver el estado de los servicios a través de una interfaz gráfica.
Sin embargo, para operaciones avanzadas como habilitar o deshabilitar servicios al inicio, systemctl sigue siendo el método más confiable.
Q6. ¿Dónde debo colocar los archivos de unidad personalizados?
A6.
Los archivos de unidad personalizados se colocan típicamente en /etc/systemd/system/. Después de editar o agregar un archivo de unidad, siempre ejecute el siguiente comando:
sudo systemctl daemon-reload
Luego, puede administrar el servicio normalmente usando start o enable.

