我创建了一个非常大且复杂的 python 程序,现在我知道它有一个严重的错误,我很难确定它。我在生产环境中使用此代码,因此我需要采取权宜措施来实施,直到找到并纠正我的编码问题。我需要创建一个 bash 脚本,可以用它来检查 python 程序的 CPU 使用情况,如果它始终低于 x%,则将其终止。一旦被杀死,它会自动重新启动。
我正在使用以下命令来获取我的 PID 和 %CPU
$ ps -eo pid -eo pcpu -eo command |grep python |grep pycode.py
2940 71.9 蟒蛇 pycode.py
我如何根据 x% cpu 检查 %cpu(上面是 71.9),然后在需要时杀死 PID。
而且,python 程序不会失控,也不会死掉。它只是下降到 5% 以下的 cpu 并保持在那里,并且 UI 冻结。我是 bash 新手,所以我真的不知道从哪里开始。
答案1
这是一个粗略的尝试:
read -r pid cpu rest < <(ps -eo pid -eo pcpu -eo command |grep python |grep pycode.py)
if (( ${cpu%.*} < 5 )) ; then
kill -TERM $pid
fi
我们通常${cpu%.*}
将其截断为整数,因为 bash 无法处理浮点数。这只运行一次;如果你想让它继续下去,把它放在一个 cron 作业上,或者把它放在一个循环中sleep 5
或其他什么。