等待程序(非子程序)完成并执行命令

Mic*_* O. 1 linux bash

我在远程计算机上运行了一个不应停止的程序。我需要跟踪该程序何时停止并立即执行命令。PID 是已知的。我怎样才能做到这一点?

Tho*_*mas 6

不能wait用于非子进程

可能在 shell 中最有效的方法是使用退出代码轮询kill -0 <pid>以检查进程是否仍然存在:

while kill -0 $PID 2>/dev/null; do sleep 1; done
Run Code Online (Sandbox Code Playgroud)

这比任何涉及ps和 的方法都更简单也更有效grep。但是,只有当您的用户有权向该进程发送信号时,它才有效。