0Pricing
Linux Server Deployment & SSH Mastery · Lección

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 --version

Comprobació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 nginx

Inicio 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 nginx

Habilitació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 nginx

Listado 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 actualmente
  • list-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=service

Lectura 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.target

Creació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 myapp

Reinicio 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 cero
  • Restart=always — cada vez que se detenga
  • RestartSec=5 — esperar antes de volver a intentarlo
[Service]
ExecStart=/usr/bin/myapp
Restart=always
RestartSec=5

Buenas prácticas

Administre los servicios con confianza:

  • Diferencie el tiempo de ejecución (start) del arranque (enable)
  • Ejecute daemon-reload después de editar archivos de unidad
  • Use journalctl -u para depurar, en lugar de archivos de registro dispersos
  • Añada Restart=on-failure para 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, reload
  • enable/disable para el comportamiento durante el arranque
  • journalctl -u para consultar los registros de los servicios
  • Archivos de unidad .service personalizados con Restart= 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

  1. Gestión de usuarios y grupos
  2. Supervisión de procesos del sistema
  3. Tareas programadas con Cron
  4. Gestión de servicios del sistema con systemd
← Volver a Linux Server Deployment & SSH Mastery