Systemd: Gestión de Servicios

Documentación sobre systemd: gestión de servicios

¿Alguna vez has lanzado un script importante en tu servidor y te has quedado con el miedo de que, si el proceso falla o el servidor se reinicia, no habrá nadie para volver a levantarlo? Si trabajas con Linux, no puedes permitirte gestionar procesos de forma manual o con simples nohup. Necesitas algo robusto, profesional y que trabaje por ti mientras duermes. Ahí es donde entra systemd.

Systemd es el sistema de inicio y gestor de servicios estándar en la mayoría de distribuciones Linux modernas. Es el responsable de orquestar todo lo que ocurre desde que pulsas el botón de encendido hasta que el sistema está listo para que te loguees. Pero, más allá de arrancar el kernel, su verdadero superpoder reside en su capacidad para gestionar servicios de usuario: permite que tus aplicaciones, scripts y bases de datos funcionen de forma persistente, se reinicien automáticamente ante un error y se integren perfectamente con el ciclo de vida del sistema operativo.

Crear un Servicio Propio

Para pasar de un simple script que corre en tu terminal a un servicio profesional que se gestiona solo, el primer paso es crear una «unidad de servicio». Para ello, debes crear un archivo de configuración en /etc/systemd/system/mi-servicio.service.

Aquí tienes una plantilla base para que puedas empezar hoy mismo:

[Unit]
Description=Mi Servicio Personalizado
After=network.target

[Service]
Type=simple
User=mi_usuario
ExecStart=/usr/bin/python3 /home/mi_usuario/script.py
Restart=always

[Install]
WantedBy=multi-user.target

En este archivo le estás diciendo al sistema exactamente qué es el servicio, quién debe ejecutarlo, qué comando debe lanzar y, lo más importante, que si algo sale mal, debe intentar reiniciarlo (Restart=always).

Comandos Útiles

Una vez que hayas creado tu archivo, no basta con dejarlo ahí; tienes que decirle a systemd que se entere de que hay algo nuevo y empezar a gestionarlo. Para tu día a día, estos son los comandos que vas a usar constantemente:

  • systemctl start mi-servicio: Iniciar el servicio inmediatamente.
  • systemctl enable mi-servicio: Configurar el servicio para que se ejecute automáticamente al arrancar el sistema.
  • systemctl status mi-servicio: Ver el estado actual (si está corriendo o muerto) y los logs más recientes.
  • journalctl -u mi-servicio -f: La herramienta definitiva para ver los logs en tiempo real y debugear qué está pasando exactamente dentro de tu proceso.

Dominar systemd es la diferencia entre ser un usuario que «corre cosas» en Linux y ser un administrador que gestiona infraestructura de forma fiable.

Suscríbete al blog por correo electrónico

Introduce tu correo electrónico para suscribirte a este blog y recibir avisos de nuevas entradas.

Deja un comentario