コマンドラインからプロセスが停止しているかどうかを確認するにはどうすればよいですか?


8

私はpidを持っていますが、使用しているプログラムを停止しました

kill -stop PID

今、私はそれを続けたいです

kill -cont PID

ただし、すでに停止している場合のみです。停止しているか実行しているかを確認するにはどうすればよいですか?


タイトルでプログラムを言うので、名前を意味しますか、例のようにPIDを意味しますか?
aurelien

フォアグラウンド(端末をつかむ)またはバックグラウンドで続行しますか?
エリックタワーズ

回答:


8

あなたは、プロセスが停止状態にあるかどうか、確認することができ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に置き換えます。

5

別の方法は

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.