我试图在崩溃时重新启动进程,以下脚本似乎可以解决:
until $@; do
echo "Process crashed with exit code $?. Respawning..." >&2
sleep 5
done
但是我想跟踪最新进程的pid,以便在上述脚本终止时我可以优雅地将其清除以进行清理。我尝试了各种各样的事情,包括until [$@ & PID=$!];
但是util需要初始的,长时间运行的命令。如何将$PID
变量设置为最新进程pid?
答案 0 :(得分:0)
如果要存储要重新启动的进程的PID,则应该:
/command/to/start/process &
PID=$!
注意命令末尾的&
,否则PID=$!
只有在上面一行退出(或守护自身)后才会执行,$!
变量将为空,