这篇文章描述了如何在 BASH 脚本中保持子进程处于活动状态:
这对于调用另一个 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 包装器......为什么?