我有 pid,我刚刚使用停止了一个程序
kill -stop PID
现在我想继续这样做
kill -cont PID
但前提是它已经停止了。我如何检查它是否已停止或正在运行?
答案1
您可以检查进程是否处于停止状态,T
是否有ps
输出。
你可以做:
[ "$(ps -o state= -p PID)" = T ] && kill -CONT PID
[ "$(ps -o state= -p PID)" = T ]
测试 的输出是否为ps -o state= -p PID
,T
如果是则发送SIGCONT
到进程。将 PID 替换为进程的实际进程 ID。
答案2
另一种方法是
pid=1
status=`cat /proc/$pid/wchan`
if [ "$status" == "do_signal_stop" ] ; then
echo "$pid sleeps: $status"
else
echo "$pid does not sleep: $status"
fi
答案3
ps -e | grep | PROGRAM
或者
while true;
do
kill program
done
wait