her*_*ain 8 command-line process signals ps process-management
我有pid,我刚刚停止了一个程序使用
kill -stop PID
现在我想继续做
kill -cont PID
但前提是它已经停止了。我如何检查它是停止还是运行?
可以检查进程是否处于停止状态,T
是否ps
输出。
你可以做:
[ "$(ps -o state= -p PID)" = T ] && kill -CONT PID
Run Code Online (Sandbox Code Playgroud)
[ "$(ps -o state= -p PID)" = T ]
测试 的输出是否ps -o state= -p PID
为T
,如果是则发送SIGCONT
到进程。用进程的实际进程 ID 替换 PID。另一种方式是
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
Run Code Online (Sandbox Code Playgroud)