
Uso del comando Screen en Linux
2 de abril de 2025Creamos en esta ruta el fichero correspondiente al servicio /etc/systemd/system/local-run.service
Añadimos este código:
[Unit]
Description=Local-run demo service
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=myuser
ExecStart=/usr/bin/env php /path/to/server.php
[Install]
WantedBy=multi-user.target
Establecemos las variables User y ExecStart.
Habilitamos el servicio: systemctl enable local-run
Arrancamos el servicio systemctl start local-run
Si queremos iniciar el servicio en orden usaremos el paraámetro After -> After=mysqld.service
Si el servicio se cae indicamos que se levante automáticamente -> Restart=always
De forma predeterminada, al configurar Restart=always como hicimos, systemd deja de reiniciar el servicio si falla más de 5 veces en un intervalo de 10 segundos. Para siempre.
Hay dos opciones de configuración [Unit] responsables de esto:
StartLimitBurst=5
StartLimitIntervalSec=10
La directiva RestartSec también influye en el resultado: si la configura para que se reinicie después de 3 segundos, nunca podrá alcanzar los 5 reintentos fallidos en 10 segundos.
La solución simple que siempre funciona es establecer StartLimitIntervalSec=0. De esta forma, systemd intentará reiniciar el servicio para siempre.