bash脚本 检测内存占用率,如果超过阈值则终止某个正在运行的进程或脚本,然后重新启动进程

#!/bin/bash

# 设置内存占用率阈值
threshold=80

while true; do
    # 获取当前内存占用率
    memory_usage=$(free | awk '/Mem/{printf("%.2f"), $3/$2 * 100}')

    echo "当前内存占用率:$memory_usage%"

    # 判断内存占用率是否超过阈值
    if [ $(echo "$memory_usage > $threshold" | bc -l) -eq 1 ]; then
        echo "内存占用率超过阈值,终止运行中的 run.py 脚本"
        
		############################
        # 查找并终止你的进程,比如这边我是在跑一个Python脚本
        pkill -f "python.*app.py"

        echo "运行中的 python.*app.py 脚本已终止"

        ## 等待5秒,然后重新启动进程
        # sleep 5
        # echo "重新启动 offline_labeler.py 脚本"
        # python app.py &
        
    else
        echo "内存占用率正常,无需终止脚本"
    fi

    # 等待一段时间后再次检查,可以根据需要调整等待时间
    sleep 5  # 等待300秒,即5分钟
done

你可能感兴趣的:(Linux,运维/故障解决,bash,开发语言)