保持进程存活并跟踪最新的pid

时间:2018-01-22 17:37:28

标签: linux bash shell pid

我试图在崩溃时重新启动进程,以下脚本似乎可以解决:

until $@; do
  echo "Process crashed with exit code $?. Respawning..." >&2
  sleep 5
done

但是我想跟踪最新进程的pid,以便在上述脚本终止时我可以优雅地将其清除以进行清理。我尝试了各种各样的事情,包括until [$@ & PID=$!];但是util需要初始的,长时间运行的命令。如何将$PID变量设置为最新进程pid?

1 个答案:

答案 0 :(得分:0)

如果要存储要重新启动的进程的PID,则应该:

/command/to/start/process &
PID=$!

注意命令末尾的&,否则PID=$!只有在上面一行退出(或守护自身)后才会执行,$!变量将为空,