是否有一个Linux命令阻止,直到一个进程退出?

问题就是这个问题。 另外,我所拥有的只是PID,而我运行命令的shell不一定是最初调用该进程的shell。 有任何想法吗?

 while ps -p $PID >/dev/null 2>&1; do sleep 1; done 

要么

 while ps -p $PID >/dev/null 2>&1; do :; done 

这不是一个很好的方法,但是你可以连续发送kill(2)系统调用给指定的pid,把0作为一个信号。 第一次通过将errnoESRCH不成功,您可能会得出结论,该过程已经退出。

你可以检查dir / proc / PID是否存在。 它似乎比发送多个信号更清洁