【发布时间】:2015-07-16 19:53:12
【问题描述】:
我正在编写一个 Bash 脚本来监视进程并检测它何时崩溃。为此,我正在监视 /proc 目录;
start_my_process;
my_process_id=$!;
until [[ ! -d "/proc/$my_process_pid" ]]; do
# alert the process is dead and restart it...
done
我能否保证在 Bash 完成执行启动进程的命令之前创建 /proc/ 中的进程条目?或者是否有可能在执行我上面的检查时,可能还没有创建 start_my_process 的条目?
编辑: 最后,我实际上反对自定义解决方案并选择了 monit,它是一个出色的看门狗工具。
【问题讨论】:
-
您的问题实际上是“我如何检测后台进程是否仍然存在?”
-
可能。以上就是我选择这样做的方式。我想尽快检测进程是否已死。
-
@Boon 有很多常见的模式可以做到这一点,例如 monit,你试过了吗?
-
@Cyrus - 我到底为什么要这样做?
-
如果您以结尾的
&开始您的流程,请尝试以下操作:while true; do start_my_process &; wait; done