Это сообщение описывает, как сохранить дочерний процесс живой в BASH сценарий:Как автоматически перезапустить скрипт python при ошибке?
How do I write a bash script to restart a process if it dies?
Это работало отлично подходит для вызова другого Баш скрипт.
Однако, я пытался что-то подобное выполнение, когда дочерний процесс является сценарий Python, daemon.py который создает раздвоенный дочерний процесс, который запускается в фоновом режиме:
#!/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
Теперь поведение полностью отличается. Кажется, скрипт python больше не является дочерним элементом сценария bash, но, похоже, «перехватил» PID скриптов BASH, поэтому больше нет BASH-оболочки вокруг вызываемого скрипта ... почему?
Это поможет узнать, что находится в daemon.py, но из имени, которое я предполагаю, это «exec» или что-то вроде эквивалента python, чтобы помещать себя в фоновом режиме. –
. Вт ч а т? –
отредактирован для описания daemon.py – chris