我可以向 PID 发送一个 TSTP 信号,如果一段时间后进程仍然“暂停”- 然后终止它吗?
谢谢。
最佳答案
应该是 3 个操作的简单序列,我认为:(1) 将 TSTP 信号发送到 pid,(2) sleep ,以及 (3) 读取 /proc/$pid/stat< 的第三个字段
查看它是否仍然等于 T
,如果是,则向它发送 KILL 信号。
kill -TSTP $pid;
sleep 2;
if [[ "$(awk '{ print($3); };' </proc/$pid/stat;)" == 'T' ]]; then kill -KILL $pid; fi;
有用的文档:
上述代码和文档存在于 bash 世界中,但同样的操作几乎可以从 C 代码中轻松执行。需要做更多的工作,尤其是打开和读取/proc/$pid/stat
(或/proc/$pid/status
)伪文件,但是这个想法是一样的。更多文档:
关于linux - 是否可以向 TSTP 发出信号,然后在发生超时时将其杀死,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39315120/