
Tengo un script Python muy simple que me gustaría ejecutar siempre en mi servidor Ubuntu 12.04. Pensé en usar advenedizo + monit. El problema es que esas herramientas parecen bastante complicadas para un simple mortal como yo, y no puedo encontrar un ejemplo sencillo en la web.
¿Es advenedizo + monit excesivo? / ¿Alguien conoce una alternativa más sencilla? / o un buen tutorial ?
Respuesta1
Tomado deesta respuesta:
Puede escribir un script bash monitor.sh
que inicie su script Python y lo reinicie si falla, pero no se reinicie si el script sale normalmente:
#!/bin/bash
until myscript.py; do
echo "'myscript.py' crashed with exit code $?. Restarting..." >&2
sleep 1
done
Luego simplemente inicie el script del monitor en segundo plano:
nohup monitor.sh &
Como alternativa a nohup
, también puedes considerartmuxopantallapara ejecutar procesos en segundo plano.
Respuesta2
La respuesta anterior es genial. No puedo comentar por ahora, así que tal vez mejore la respuesta aquí.
Es posible que incluso desee escribir una función para "myscript", ya que es un script de Python y no se ejecuta en el entorno bash.
Entonces,
#!/bin/bash
myscript(){
python3 myscript [args..]
}
until myscript; do
echo "'myscript' crashed with exit code $?. Restarting..." >&2
sleep 1
done
La gente nueva en python o bash no sabría esta pequeña cosa. Podría ayudarlos. Al principio solía tener problemas con cosas tan pequeñas. ¡No quiero que otros lo hagan!