
Si utiliza alguna distribución de Linux popular, incluidas Debian, Ubuntu, Arch, openSUSE o Fedora, su sistema utilizará systemd como sistema de inicio.
Por supuesto, existe controversia en torno a systemd. Sin embargo, es el sistema de inicio más utilizado.
En las distribuciones con systemd, hay un comando que te hace la vida más fácil.es Control de sistema Directiva para interactuar con el servicio systemd init. Este comando siempre lo utilizan los administradores del sistema, pero también es útil para los usuarios finales que quieren tomar el control desde el terminal.
Por ejemplo, puede utilizar el comando systemctl para enumerar servicios en Linux.
Entonces, en este tutorial, lo guiaré a través de todos los puntos que necesita para aprender a usar el comando systemctl:
- Sintaxis básica y banderas comunes.
- Ejemplos prácticos de comandos.
- Practique preguntas para mejorar el uso del comando systemctl.
A continuación se explica cómo utilizar el comando Systemctl
Para utilizar el comando systemctl, es importante comprender la sintaxis y las opciones disponibles.
La gramática es la siguiente:
systemctl
aquí,
: Aquí puede especificar las acciones que desea realizar con el servicio, por ejemplostop
,start
ETC.
: Aquí puede especificar el nombre del servicio que desea utilizar.
Para administrar servicios, puede usar varios comandos usando el comando systemctl, uno de los comandos más útiles se enumera a continuación:
Orden | describir |
---|---|
systemctl start [service] | Inicie un servicio y ejecútelo en segundo plano. |
systemctl stop [service] | Detener los servicios actualmente en ejecución. |
systemctl enable [service] | Configure el servicio para que se inicie automáticamente cuando se inicie el sistema. |
systemctl disable [service] | Configure el servicio para que no se inicie automáticamente al iniciar el sistema. |
systemctl status [service] | Muestra el estado actual del servicio (en ejecución, detenido, etc.). |
systemctl restart [service] | Detenga el servicio en ejecución y reinícielo. |
systemctl reload [service] | Vuelva a cargar la configuración del servicio sin detenerlo. |
systemctl mask [service] | Impide que se inicien los servicios, incluso si se inician manualmente. |
systemctl unmask [service] | Permitir que se inicien servicios previamente bloqueados. |
systemctl set-default [target] | Cambie el objetivo predeterminado del sistema (nivel de operación) para el próximo inicio. |
systemctl list-unit-files | Enumera todos los archivos de la unidad instalada y su estado actual (activado/desactivado). |
systemctl list-dependencies [unit] | Muestra las dependencias requeridas por una unidad específica (otras unidades). |
systemctl list-sockets | Enumere todos los sockets activos (utilizados para la comunicación entre procesos). |
systemctl list-jobs | Muestra todos los trabajos systemd actualmente activos (operaciones en curso). |
systemctl list-units | Enumere todas las unidades systemd cargadas y activas (servicios, sockets, etc.). |
Ahora, veamos algunos ejemplos prácticos del comando systemctl.
Ejemplo práctico del comando systemctl
En esta sección, compartiré algunos ejemplos prácticos de comandos systemctl, desde básicos hasta avanzados.
Comencemos con cómo iniciar el servicio.
1. Iniciar el servicio
En la mayoría de los casos, el ajuste preestablecido iniciará el servicio instalado, pero a veces será necesario que lo haga manualmente.
Para iniciar el servicio es necesario utilizar start
Utilice la directiva systemctl para etiquetar y agregar el nombre del servicio de la siguiente manera:
sudo systemctl start
Supongamos que quiero iniciar el servidor Apache, usaré el siguiente comando:
sudo systemctl start apache2

2. Habilite el servicio
Cuando inicias un servicio, solo es válido hasta la próxima vez que lo inicies. Esto significa que el servicio se cerrará cuando reinicie el sistema.
Para solucionar esta situación, desea iniciar un servicio automáticamente al iniciar el sistema, para ello puede utilizar enable
El logotipo se muestra a continuación:
sudo systemctl enable
Por ejemplo, si quiero habilitar el servicio Apache, usaría el siguiente comando:
sudo systemctl enable apache2

3. Detener el servicio
Cuando planeas modificar un servicio activo, el primer paso que tienes que hacer es detener el servicio, para esto puedes usar stop
El logotipo se muestra a continuación:
sudo systemctl stop
Por ejemplo, cómo detener el servicio Apache es el siguiente:
sudo systemctl stop apache2

Lectura recomendada📖
Iniciar, detener y reiniciar servicios en Ubuntu y otros Linux
Puede administrar fácilmente servicios usando systemd e init. Aprenda cómo iniciar, detener y reiniciar servicios en Ubuntu y otras distribuciones de Linux.

4. Desactivar servicios
Si ha habilitado un servicio en el pasado pero ahora ya no desea que esté activo cada vez que se inicia el sistema, puede desactivarlo.
Para desactivar el servicio, puede utilizar disable
El logotipo se muestra a continuación:
sudo systemctl disable
Para desactivar el servicio Apache, utilizo el siguiente comando:
sudo systemctl disable apache2

5. Verificar el estado del servicio
Se recomienda encarecidamente verificar el estado antes de realizar cualquier operación en el servicio, esto puede ahorrarle mucho tiempo.
Para verificar el estado de un servicio, simplemente agregue el nombre del servicio a status
El logotipo se muestra a continuación:
systemctl status
Aquí compruebo el estado del servicio Apache:
systemctl status apache2

Como desactivé el servicio Apache anteriormente, el resultado anterior indica que el servicio está deshabilitado.
Pero dependiendo de su servicio, puede recibir diferentes estados de servicio, lo que significa lo siguiente:
estado | describir |
---|---|
active (running) | Actualmente, el servicio se ejecuta en segundo plano. |
active (exited) | El servicio es una tarea única o periódica que ha completado su ejecución. |
active (waiting) | El servicio se está ejecutando pero está esperando que ocurra un evento o condición específica antes de poder continuar. |
inactive | Este servicio actualmente no está funcionando. |
enabled | Este servicio está configurado para iniciarse automáticamente cuando se inicia el sistema. |
disabled | Este servicio está configurado para no iniciarse automáticamente al iniciar el sistema. |
static | Este servicio no se puede administrar mediante comandos systemd o systemctl; requiere administración manual. |
masked | El servicio está bloqueado, lo que significa que no puede iniciarse (es necesario desbloquearlo antes de ejecutarlo). |
alias | El nombre del servicio es un alias y el servicio es un enlace simbólico al archivo de otra unidad. |
linked | Un archivo de servicio o unidad está vinculado simbólicamente a otro archivo de unidad. |
6. Reinicie el servicio
Después de modificar la configuración del servicio, o si no responde, reiniciar el servicio puede ser útil.
Para reiniciar el servicio puedes usar restart
El logotipo se muestra a continuación:
sudo systemctl restart
Por ejemplo, mi servidor Apache no responde, así que si quiero reiniciar el servicio, uso el siguiente comando:
sudo systemctl restart apache2
Lectura relacionada📖
14 distribuciones de Linux sin Systemd
systemd ha sido adoptado por la mayoría de las principales distribuciones de Linux. Si no le gusta nada systemd, existen distribuciones de Linux alternativas para usted.

7. Recarga el servicio
sudo systemctl unmask
Cuando realiza cambios en la configuración de un servicio, recarga el servicio y desea que los cambios se apliquen sin reiniciar todo el servicio.
sudo systemctl unmask
Para recargar el servicio puedes utilizar reload
El logotipo se muestra a continuación:
sudo systemctl reload
Por ejemplo, hice algunos cambios en el servicio Apache y ahora, si quiero recargar el servicio Apache, escribo lo siguiente en la terminal:
sudo systemctl reload apache2
8. Servicios de bloqueo
Bloquear un servicio es la forma más eficaz de evitar que el servicio se inicie manual o automáticamente durante el inicio del sistema.
Piense en ello como una versión más sólida de fuera de servicio.
Para bloquear un servicio puedes usar mask
El logotipo se muestra a continuación:
sudo systemctl mask
Así es como la directiva busca el servicio Apache:
sudo systemctl mask apache2

Siempre que bloquee un servicio, verá creado un enlace simbólico que redirige el archivo de configuración del servicio a un dispositivo vacío (/dev/null
). Esto significa que no puede iniciar el servicio de ninguna manera hasta que se descubra.
9. Revela el servicio
Si desea iniciar el servicio de bloqueo, ¡primero debe cancelar el bloqueo!
Para desenmascarar un servicio que puede utilizar unmask
El logotipo se muestra a continuación:
sudo systemctl unmask
Simplemente ingrese un comando como este:
sudo systemctl unmask apache2

Como puede ver, elimina el enlace simbólico apuntado. /dev/null
.
10. Establece objetivos predeterminados
Establecer el objetivo predeterminado se refiere a cambiar el modo operativo predeterminado o el nivel operativo al que ingresa el sistema después del inicio.
Un buen ejemplo de configuración de un objetivo predeterminado es seleccionar la interfaz de usuario para iniciar; por ejemplo, puede iniciar en modo CLI o GUI.
Para establecer un objetivo predeterminado, puede utilizar set-default
El logotipo se muestra a continuación:
sudo systemctl set-default
Por ejemplo, si desea iniciar la GUI, configuro el objetivo predeterminado en graphical.target
como muestra la imagen:
sudo systemctl set-default graphical.target
Además de los destinos GUI, tienes otras opciones:
Objetivo | describir |
---|---|
multi-user.target | Este objetivo inicia el sistema con la red habilitada y es adecuado para servidores o estaciones de trabajo no gráficas. |
rescue.target | Este objetivo es útil para la recuperación del sistema o la resolución de problemas cuando el sistema no arranca en el modo multiusuario normal. |
emergency.target | Este objetivo proporciona un entorno de emergencia para el mantenimiento o reparación del sistema cuando el sistema se encuentra en un estado gravemente dañado. |
reboot.target | Por lo general, esto se usa para reinicios únicos o secuencias de comandos automatizadas. |
poweroff.target | Por lo general, esto se usa para apagados únicos o secuencias de comandos automatizadas. |
hibernate.target | Configura el sistema para que hiberne (guarde el estado del sistema en el disco y apáguelo) como destino predeterminado, solo disponible si el sistema admite la hibernación. |
hybrid-sleep.target | Configura el sistema para que entre en el modo de suspensión híbrido (una combinación de hibernación y suspensión) como objetivo predeterminado. Disponible solo si el sistema admite la suspensión híbrida. |
Lectura recomendada📖
Cómo enumerar servicios en Linux
Verificar el estado del servicio es uno de los primeros pasos para solucionar problemas de un sistema Linux. Aprenda a enumerar servicios en su sistema en este tutorial.

11. Listar archivos unitarios
Los archivos de unidades son archivos de configuración de texto sin formato que se utilizan para definir y administrar unidades y servicios del sistema.
Puede enumerar todos los archivos de unidades ejecutando el siguiente comando:
systemctl list-unit-files

12. Lista de todos los sockets activos
Cuando enumera todos los sockets activos, puede obtener información sobre los canales de comunicación entre procesos establecidos en los sistemas basados en systemd.
Para enumerar todos los sockets activos, utilice la directiva proporcionada:
systemctl list-sockets

Hay una lista de todos los sockets que están escuchando solicitudes entrantes.
Preguntas de práctica 📓
Después de comprender los conceptos básicos del comando systemctl, es importante practicar su uso mejor.
Aquí hay algunas preguntas de práctica para el comando systemctl:
- ¿Cómo comprobarías el estado?
httpd
Uso del serviciosystemctl
? - Escribir comando para comenzar
sshd
servicio si aún no se está ejecutando. - quieres habilitar
mysqld
El servicio se inicia automáticamente cuando se inicia el sistema. ¿Qué comando usarías para hacer esto? - Supongamos que necesita recargar la configuración.
nginx
servicio sin interrumpir sus operaciones.Quésystemctl
¿Sabes usar comandos? - Su sistema está actualmente configurado para iniciar
multi-user.target
Por defecto.Quiere cambiar el objetivo predeterminado agraphical.target
para el próximo inicio. ¿Cómo utilizarías para lograr esto?
Si tiene alguna dificultad para resolver el problema anterior, puede publicar su pregunta en nuestro foro comunitario o dejar un comentario a continuación.
envolver
Ahora que comprende la esencia del comando systemctl, ¿qué sigue?
Bueno, si estás interesado en explorar y experimentar, puedes crear tu propio servicio systemd. Aquí se explica cómo escribir su propio servicio systemd en Linux:
Cómo configurar el servicio systemd en Linux
Conozca los pasos para crear un servicio systemd en Linux a través de los ejemplos prácticos que se muestran en este tutorial.

¿Es usted un estudiante nuevo que quiere explorar los comandos de Linux? Quizás quieras comenzar con lo básico:
Tutorial de instrucciones de Linux para principiantes absolutos
¿Nunca antes usaste comandos de Linux? No te preocupes. Esta serie de tutoriales es adecuada para principiantes absolutos en terminales Linux.

💬 ¿Me perdí una variante del comando systemctl que es importante para ti? ¿Cómo lo usa para su caso de uso? Por favor dímelo en los comentarios.