【问题标题】:Keeping a process alive and tracking the latest pid保持进程活动并跟踪最新的 pid
【发布时间】:2018-01-22 17:37:27
【问题描述】:

我正在尝试在崩溃时重新启动一个进程,并且以下脚本似乎可以运行:

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

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

【问题讨论】:

  • 为什么不能使用手表?如果你想跟踪 pid id?

标签: linux bash shell pid


【解决方案1】:

如果你想存储你正在重启的进程的PID,你应该:

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

注意命令末尾的&,否则PID=$!将在上述行退出(或自身守护进程)后执行,$!变量将为空,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    • 1970-01-01
    相关资源
    最近更新 更多