Command-Line

如何檢查是否從命令行停止了程序?

  • November 6, 2016

我有 pid,我剛剛停止了一個程序

kill -stop PID

現在我想繼續這樣做

kill -cont PID

但前提是它已經停止了。我將如何檢查它是停止還是執行?

可以檢查程序是否處於停止狀態,T是否有ps輸出。

你可以做:

[ "$(ps -o state= -p PID)" = T ] && kill -CONT PID
  • [ "$(ps -o state= -p PID)" = T ]測試 的輸出是否ps -o state= -p PIDT,如果是則發送SIGCONT到程序。將 PID 替換為程序的實際程序 ID。

另一種方法是

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

引用自:https://unix.stackexchange.com/questions/321440