等待特定pid的最佳方式

时间:2017-10-13 13:33:29

标签: linux bash pid

从其他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

3 个答案:

答案 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

嗯,仍然有一个循环,但不是一个轮询。