第一步: 做好监控CPU的脚本文件:
#!/bin/bash
## 设置CPU使用率阈值
CPU_THRESHOLD=90
while true;do
# 获取总的CPU使用率
CPU_USAGE=$(top -b -n1 | grep "Cpu(s)" | awk '{print $2}') #这里主要不要加$4(系统占用率)
#log
logfile=/var/log/cup_monitor_by_weifeng.logq
# 检查CPU使用率是否超过阈值
if (( $(echo "$CPU_USAGE > $CPU_THRESHOLD" | bc -l) )); then
# 获取CPU使用率最高的进程的PID
TOP_PID=$(top -b -o %CPU -n1 | sed -n '8p' | awk '{print $1}')
# 杀死该进程
kill -9 $TOP_PID
echo "---------------------`date`-----------------:" >> $logfile
echo "Killed process $TOP_PID due to high CPU usage: $CPU_USAGE%" >> $logfile
fi
sleep 10
done
第二步:基于 systemd方式实现,创建和配置systemd:
在/etc/systemd/system/目录下创建 和配置systemd 服务文件,示例如下,这里配置ExecStart参数即可,systemd 服务文件更多配置和命令使用可参考: