Gestión de servicios del sistema con systemd
Controle los programas de larga duración que mantienen operativo un servidor Linux mediante systemd: inicie, detenga, habilite e inspeccione servicios, lea sus registros con journalctl y comprenda cómo encajan las unidades en la gestión de procesos.
Gestión de servicios del sistema con systemd es una lección gratuita de Linux Server Deployment & SSH Mastery en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Linux Server Deployment & SSH Mastery, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Linux Server Deployment & SSH Mastery incluye 4 lecciones en total.
Servicios frente a procesos ordinarios
Ha administrado procesos individuales y tareas programadas. Sin embargo, los programas que definen un servidor — servidores web, bases de datos y SSH — se ejecutan como servicios: demonios en segundo plano que deberían iniciarse durante el arranque y reiniciarse si fallan.
En el Linux moderno, los servicios se administran mediante systemd, el gestor del sistema y de los servicios.
Qué administra systemd
systemd organiza todo en unidades. El tipo más común es la unidad .service, que describe cómo ejecutar un demonio.
El comando systemctl es su interfaz principal para inspeccionar y controlar estas unidades.
systemctl --versionComprobación del estado de un servicio
systemctl status muestra si un servicio está en ejecución, el ID de su proceso principal, las líneas recientes del registro y si está habilitado durante el arranque.
Normalmente, este es el primer comando que se ejecuta al solucionar problemas de un servicio.
systemctl status nginxInicio y detención de servicios
Puede controlar el estado de ejecución de un servicio con start, stop y restart. Estos cambios tienen efecto inmediato, pero no modifican el comportamiento durante el arranque.
Use reload cuando un servicio admita volver a leer su configuración sin interrumpir las conexiones.
sudo systemctl start nginx
sudo systemctl restart nginx
sudo systemctl reload nginx
sudo systemctl stop nginxHabilitación de servicios durante el arranque
enable hace que un servicio se inicie automáticamente cuando arranca el servidor; disable lo elimina del arranque. Esto es independiente de si está en ejecución en este momento.
La práctica opción --now lo habilita y lo inicia en un solo paso.
sudo systemctl enable nginx
sudo systemctl enable --now nginx
sudo systemctl disable nginxListado de servicios
Para ver qué está instalado y en ejecución, liste los archivos de unidad o las unidades activas.
list-units --type=service— servicios cargados actualmentelist-unit-files --type=service— todos los servicios instalados y su estado de habilitación
systemctl list-units --type=service --state=running
systemctl list-unit-files --type=serviceLectura de registros con journalctl
systemd captura la salida de los servicios en el journal. Consúltelo con journalctl.
-u nginx— solo este servicio-f— seguir en tiempo real-e— saltar al final
sudo journalctl -u nginx -f
sudo journalctl -u ssh --since '1 hour ago'Anatomía de un archivo de unidad
Un servicio se define mediante un archivo de unidad, normalmente en /etc/systemd/system/ o /lib/systemd/system/. Tiene tres secciones clave: [Unit], [Service] y [Install].
La línea ExecStart indica a systemd qué comando debe ejecutar.
[Unit]
Description=My App
After=network.target
[Service]
ExecStart=/usr/bin/myapp --port 8080
Restart=on-failure
[Install]
WantedBy=multi-user.targetCreación de su propio servicio
Para ejecutar su propio programa como servicio, coloque un archivo de unidad en /etc/systemd/system/, vuelva a cargar systemd para que detecte el archivo nuevo y, después, habilítelo e inícielo.
daemon-reload es necesario después de cualquier cambio en un archivo de unidad.
sudo nano /etc/systemd/system/myapp.service
sudo systemctl daemon-reload
sudo systemctl enable --now myappReinicio automático en caso de fallo
Una de las mejores características de systemd es la recuperación automática. La directiva Restart= indica que debe volver a iniciar un servicio que se haya bloqueado.
Restart=on-failure— solo después de una salida distinta de ceroRestart=always— cada vez que se detengaRestartSec=5— esperar antes de volver a intentarlo
[Service]
ExecStart=/usr/bin/myapp
Restart=always
RestartSec=5Buenas prácticas
Administre los servicios con confianza:
- Diferencie el tiempo de ejecución (
start) del arranque (enable) - Ejecute
daemon-reloaddespués de editar archivos de unidad - Use
journalctl -upara depurar, en lugar de archivos de registro dispersos - Añada
Restart=on-failurepara que las aplicaciones personalizadas sean más resistentes
Comprobación rápida
Compruebe sus conocimientos sobre systemd.
Repaso
Ahora puede administrar servicios del servidor con systemd:
status,start,stop,restart,reloadenable/disablepara el comportamiento durante el arranquejournalctl -upara consultar los registros de los servicios- Archivos de unidad
.servicepersonalizados conRestart=para mejorar la resistencia
Esto completa sus conocimientos de administración de procesos y tareas con demonios de larga ejecución.
Preguntas frecuentes
¿La lección «Gestión de servicios del sistema con systemd» es gratis?
Sí — el texto completo de «Gestión de servicios del sistema con systemd» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Linux Server Deployment & SSH Mastery, actualiza a CoddyKit PRO. El curso de Linux Server Deployment & SSH Mastery incluye 4 lecciones en total.
¿Qué aprenderé en «Gestión de servicios del sistema con systemd»?
Controle los programas de larga duración que mantienen operativo un servidor Linux mediante systemd: inicie, detenga, habilite e inspeccione servicios, lea sus registros con journalctl y comprenda có… Practicas Linux Server Deployment & SSH Mastery con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Linux Server Deployment & SSH Mastery?
No se requiere experiencia previa. Linux Server Deployment & SSH Mastery en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Gestión de servicios del sistema con systemd»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Linux Server Deployment & SSH Mastery?
Sí. Cada lección de Linux Server Deployment & SSH Mastery incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Gestión de usuarios y grupos
- Supervisión de procesos del sistema
- Tareas programadas con Cron
- Gestión de servicios del sistema con systemd