Questo post descrive come mantenere in vita un processo figlio in uno script bash:Come riavviare automaticamente uno script python in caso di errore?
How do I write a bash script to restart a process if it dies?
Questo ha funzionato grande per chiamare un altro script BASH.
Tuttavia, ho cercato di eseguire qualcosa di simile dove il processo figlio è uno script Python, daemon.py che crea un processo figlio biforcuta, che viene eseguito in background:
#!/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
Ora il comportamento è completamente diverso. Sembra che lo script python non sia più uno script di bash ma sembra aver "preso il controllo degli script di BASH PID - quindi non c'è più un wrapper BASH attorno allo script chiamato ... perché?
Sarebbe utile sapere cosa c'è in daemon.py, ma dal nome suppongo che faccia un "exec" o qualunque sia l'equivalente python da mettere in secondo piano. –
.... W h a t? –
modificato per descrivere daemon.py – chris