这篇文章介绍了如何保持一个子进程活着bash脚本:如何在失败时自动重启python脚本?
How do I write a bash script to restart a process if it dies?
这调用另一个bash脚本伟大的工作。
不过,我想执行类似的东西在那里子进程是一个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脚本的子代,但似乎已经'接管'了BASH脚本PID - 所以不再有BASH包装器绕过被调用的脚本...为什么?
这将有助于了解daemon.py中的内容,但是从名称来看,我猜测它执行的是“exec”或任何python等价物将其置于后台。 – 2010-04-26 15:08:13
...... W时的T? – 2010-04-26 15:08:42
编辑描述daemon.py – chris 2010-04-26 15:15:24