我有一个Ubuntu服务器20。我正在运行4个进程,其名称如下:
project-A
project-B
project-C
project-D一切运行良好,但有时我看到其中一个项目消耗CPU,达到300%。
因此,我希望脚本杀死(例如)“项目-B”,当它达到300%的CPU。
发布于 2021-01-28 17:50:15
下面的脚本应该杀死使用50%以上CPU的任何md5sum进程。根据需要替换md5sum和50。
while true; do
PID=$(pidof -s md5sum || cat /proc/sys/kernel/pid_max)
if [[ $(ps -p $PID -o %cpu= |grep -Po '^\s*\K[0-9]+') -gt 50 ]]; then
echo killing PID $PID
kill $PID
fi
sleep 1
done注释:
pidof -s your_process之前,请尝试使用md5sum确保其工作正常。kill -9 $PID而不是kill $PID,但只有在第一种方法不起作用时才能这样做。PID=$(pidof -s md5sum || cat /proc/sys/kernel/pid_max); if [[ $(ps -p $PID -o %cpu= |grep -Po '^\s*\K[0-9]+') -gt 50 ]]; then echo killing PID $PID; kill $PID; fi解释:
pidof -s md5sum || cat /proc/sys/kernel/pid_max first (-s):md5sum进程的进程id,如果没有,则为不存在的PID。ps -p $PID -o %cpu=进程的$PID CPU利用率为十进制百分比|grep -Po '^\s*\K[0-9]+'带CPU百分比为整数if [[ ... -gt 50 ]]如果..。大于50https://askubuntu.com/questions/1311550
复制相似问题