如何从命令行检查进程是否已停止?

如何从命令行检查进程是否已停止?

我有 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 PIDT如果是则发送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 

相关内容