Usa Systemd para iniciar un servicio de Linux al arrancar
Introducción
Systemd es un poderoso sistema init utilizado por la mayoría de las modernas distribuciones Linux para gestionar procesos del sistema y de servicios. Una de sus características clave es la capacidad de iniciar servicios automáticamente al arrancar. Este artículo le guiará a través del proceso de configurar un servicio para que se inicie al arrancar usando Systemd, asegurando que sus aplicaciones críticas se ejecuten de forma fiable cada vez que se reinicie el sistema.
Comprender los servicios de Systemd
Systemd utiliza unit files para definir y gestionar servicios. Estos unit files se almacenan en:
- Servicios de todo el sistema:
/etc/systemd/system/y
/lib/systemd/system/ - Servicios específicos del usuario:
~/.config/systemd/user/
Un archivo de unidad de servicio normalmente tiene una extensión
.servicey contiene directivas de configuración que indican a Systemd cómo gestionar el servicio.
Crear un archivo de servicio de Systemd
Para configurar un servicio para que se inicie al arrancar, necesita crear un archivo de servicio de Systemd. Aquí tiene un ejemplo de cómo crear un servicio personalizado.
1. Crear el archivo de servicio
Ejecute el siguiente comando para abrir un nuevo archivo de servicio en un editor de texto:
sudo nano /etc/systemd/system/myservice.service
2. Definir la configuración del servicio
Añada el siguiente contenido, modificándolo según su aplicación:
[Unit] Description=My Custom Service After=network.target [Service] ExecStart=/usr/bin/myapp Restart=always User=myuser Group=mygroup WorkingDirectory=/home/myuser/ [Install] WantedBy=multi-user.target
Explicación:
After=network.target: Garantiza que el servicio se inicie después de que la red esté disponible.
ExecStart=/usr/bin/myapp: Define el comando para iniciar el servicio.
Restart=always: Garantiza que el servicio se reinicie en caso de fallo.
User=myusery
Group=mygroup: Ejecuta el servicio bajo un usuario y grupo específicos.
WantedBy=multi-user.target: Garantiza que el servicio se inicie en modo multi-user (nivel de ejecución predeterminado para la mayoría de los servidores).
3. Recargar Systemd y habilitar el servicio
Una vez creado el archivo de servicio, recargue Systemd para reconocer el nuevo servicio:
sudo systemctl daemon-reload
Habilite el servicio para que se inicie al arrancar:
sudo systemctl enable myservice.service
4. Iniciar y verificar el servicio
Inicie el servicio manualmente:
sudo systemctl start myservice.service
Compruebe el estado del servicio:
sudo systemctl status myservice.service
Si todo está configurado correctamente, debería ver una salida que indique que el servicio se está ejecutando.
Gestionar el servicio
Aquí tiene algunos comandos útiles para gestionar su servicio de Systemd:
- Reiniciar el servicio:
sudo systemctl restart myservice.service - Detener el servicio:
sudo systemctl stop myservice.service - Deshabilitar que el servicio se inicie al arrancar:
sudo systemctl disable myservice.service - Ver los registros relacionados con el servicio:
journalctl -u myservice.service --no-pager
Conclusión
Usar Systemd para iniciar servicios al arrancar es una forma sencilla y eficaz de garantizar que las aplicaciones críticas sigan ejecutándose después de reiniciar el sistema. Al configurar correctamente un archivo de servicio de Systemd, habilitarlo al arrancar y gestionarlo con
systemctl, puede mejorar la fiabilidad y la automatización de su entorno Linux.


