问题就是这个问题。 另外,我所拥有的只是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作为一个信号。 第一次通过将errno
为ESRCH
不成功,您可能会得出结论,该过程已经退出。
你可以检查dir / proc / PID是否存在。 它似乎比发送多个信号更清洁