私は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