| 123456789101112131415161718192021222324252627282930313233343536 |
- #!/bin/bash
- # 设置阈值(百分比,不带%号)
- THRESHOLD=10
- # 启动 ptpd2 的命令(请根据实际路径修改)
- # ART_CMD="/usr/sbin/ptpd2"
- # 检查周期(秒)
- INTERVAL=10
- while true; do
- # 获取 ptpd2 的 PID
- PID=$(ps | grep ptpd2 | grep -v "grep" | awk '{print $1}')
- if [ -n "$PID" ]; then
- # 获取 ptpd2 的实时 CPU 使用率(百分比)
- CPU=$(top -b -n1 | grep ptpd2 |grep -v "grep" | awk '{print $8}')
- CPU_INT=${CPU%.*} # 去掉小数部分用于比较
- if [[ "$CPU_INT" =~ ^[0-9]+$ ]] && (( CPU_INT > THRESHOLD )); then
- echo "[`date`] ptpd2 CPU 使用率 ${CPU}% 超过阈值 ${THRESHOLD}%,正在重启..."
- kill -9 ${PID}
- # sleep 1
- # $START_CMD &
- echo "[`date`] ptpd2 已重启"
- fi
- # else
- # echo "[`date`] ptpd2 未运行,尝试启动..."
- # $START_CMD &
- # echo "[`date`] ptpd2 启动完成"
- fi
- sleep $INTERVAL
- done
|