从其他shell 等待特定pid 的最佳方法是什么?(即没有循环)
实际上我使用此解决方案(如果root是所有者,则无效):
while kill -0 $pid > /dev/null 2>&1
do
echo "waiting $pid"
sleep 10
done
替代(不适用于zombie processus )
while ps -p `cat $PID_FILE` > /dev/null 2>&1
do
echo "waiting $pid"
sleep 10;
done
答案 0 :(得分:0)
通常,您使用wait
shell内置:
wait $pid
答案 1 :(得分:0)
我很难过,显然没有没有循环的解决方案,也没有用于流程的“事件”API。
我首选的解决方案是
while [ -e /proc/$pid ]
do
echo "waiting $pid"
sleep 10
done
答案 2 :(得分:0)
如果您不是其父母,则不能C
进程。如果你真的想要一种在另一个shell中获得信息的方法,你可以像这样工作:
LIBwithoutC
在另一个shell中:
wait
嗯,仍然有一个循环,但不是一个轮询。