#!/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