3

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

4

3 回答 3

2

这不是一个非常巧妙的方法,但是您可以不断kill(2)地向指定的 pid 发出系统调用,将零作为信号。第一次设置为kill不成功,你可以断定进程已经退出。errnoESRCH

于 2010-11-09T21:52:20.597 回答
2
while ps -p $PID >/dev/null 2>&1; do sleep 1; done

或者

while ps -p $PID >/dev/null 2>&1; do :; done
于 2010-11-09T22:39:11.837 回答
1

您可以检查目录 /proc/PID 是否存在。它似乎比发送多个信号更干净

于 2010-11-09T22:04:55.787 回答