Plantilla y flujo para crear un .service propio en systemd: usuario, directorio de trabajo, variables, reinicio automático, activación y logs.
Archivo:
/etc/systemd/system/mi-app.service
Plantilla:
[Unit]
Description=Mi aplicación
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=deploy
Group=deploy
WorkingDirectory=/opt/mi-app
EnvironmentFile=-/etc/mi-app/env
ExecStart=/opt/mi-app/.venv/bin/python /opt/mi-app/app.py
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
sudo nano /etc/systemd/system/mi-app.service
Validar y activar:
sudo systemctl daemon-reload
sudo systemctl enable --now mi-app.service
systemctl status mi-app.service
Ver logs:
journalctl -u mi-app.service -f
Archivo:
/etc/mi-app/env
Contenido: