Ejecutar una app con & o nohup va bien hasta que el servidor se reinicia, el proceso se cae o quieres encontrar sus registros — entonces se desmorona. systemd es la respuesta estándar: arranca tu app al inicio, la reinicia si muere y captura sus registros. Convertir un script o binario en un servicio gestionado es un archivo pequeño.
1. Escribe un archivo unit
Crea /etc/systemd/system/myapp.service:
[Unit]
Description=My application
After=network.target
[Service]
User=myapp
WorkingDirectory=/opt/myapp
ExecStart=/usr/bin/python3 /opt/myapp/run.py
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Ajusta ExecStart, WorkingDirectory y User a tu app. Restart=always es lo que la mantiene viva.
2. Crea un usuario dedicado (recomendado)
sudo useradd --system --no-create-home --shell /usr/sbin/nologin myapp
sudo chown -R myapp:myapp /opt/myapp
Ejecutar como usuario sin privilegios de root limita el daño si algún día comprometen la app.
3. Actívalo e inícialo
sudo systemctl daemon-reload
sudo systemctl enable --now myapp
enable hace que arranque al inicio; --now lo inicia de inmediato.
4. Revisa estado y registros
sudo systemctl status myapp
journalctl -u myapp -f # seguir los registros en vivo
Comandos del día a día
sudo systemctl restart myapp # reiniciar tras un cambio
sudo systemctl stop myapp # detenerlo
sudo systemctl disable myapp # dejar de arrancar al inicio
Advertencias honestas
- Ejecuta
daemon-reloadtras editar un archivo unit, o systemd usará la versión vieja. - Ojo con los bucles de caídas. Si la app falla al instante,
Restart=alwaysreintenta para siempre —RestartSec=5espacia los intentos; corrige el error de raíz con los registros. - Prefiere un
User=sin privilegios de root para que una app comprometida no sea dueña de todo el servidor.
Siguientes pasos
Un servicio systemd es como mantienes cualquier cosa funcionando 24/7 — por ejemplo un agente de IA que corre las 24 horas o el relay tras un servidor RustDesk autoalojado. Si tu app está contenerizada en su lugar, el --restart unless-stopped de Docker cumple el mismo papel — mira cómo instalar Docker.
Comentarios
Aún no hay comentarios. Sé el primero.