Este post describe cómo mantener un proceso hijo viva en un script bash:¿Cómo se puede reiniciar automáticamente una secuencia de comandos python en caso de error?
How do I write a bash script to restart a process if it dies?
Esto funcionó muy bien para llamar a otro script BASH.
Sin embargo, he intentado ejecutar algo similar en el que el proceso hijo es un script en Python, daemon.py que crea un proceso hijo bifurcado que se ejecuta en segundo plano:
#!/bin/bash
PYTHON=/usr/bin/python2.6
function myprocess {
$PYTHON daemon.py start
}
NOW=$(date +"%b-%d-%y")
until myprocess; do
echo "$NOW Prog crashed. Restarting..." >> error.txt
sleep 1
done
Ahora el comportamiento es completamente diferente. Parece que el script de python ya no es un elemento secundario del script bash, pero parece que 'se hizo cargo' de los scripts de BASH PID, por lo que ya no existe un BASH wrapper alrededor del script llamado ... ¿por qué?
Sería de gran ayuda para saber qué hay en daemon.py, pero a partir del nombre que supongo que lo hace un "ejecutivo" o lo que es equivalente a la pitón para ponerse a un segundo plano. –
... W h a t? –
editado para describir daemon.py – chris