1. 根据内存百分比杀死特定进程

    #!/bin/bash
    # 获取当前空闲内存百分比
    free_mem_percent=$(free | awk '/Mem/{printf "%.2f", $4/$2 * 100}')
    # 定义阈值
    threshold=10
    # 判断空闲内存是否低于阈值
    if [ $(echo "$free_mem_percent < $threshold" | bc -l) -eq 1 ]; then
    # 获取perseus7进程的PID
    perseus_pid=$(pgrep perseus7)
    # 检查是否有perseus7进程在运行
    if [ -n "$perseus_pid" ]; then
    # 杀死perseus7进程
    kill -9 $perseus_pid
    echo "perseus7进程已被杀死"
    else
    echo "没有运行中的perseus7进程"
    fi
    else
    echo "空闲内存未低于$threshold%,无需执行操作"
    fi
  2. 根据内存百分比杀死占用内存最高的进程

    #!/bin/bash
    # 获取剩余内存百分比
    free_percent=$(free | awk '/Mem/{printf "%.2f", $4/$2 * 100}')
    echo "当前剩余内存百分比: $free_percent%"
    # 定义阈值
    threshold=10
    # 如果剩余内存百分比低于阈值,则进行相应操作
    if (( $(echo "$free_percent < $threshold" | bc -l) )); then
        echo "空闲内存低于10%,尝试杀死占用内存最高的进程..."
        # 获取占用内存最高的进程ID
        highest_mem_pid=$(ps axo pid,%mem --sort=-%mem | awk 'NR==2 {print $1}')
        if [ -n "$highest_mem_pid" ]; then
            echo "杀死进程 $highest_mem_pid"
            kill -9 "$highest_mem_pid"
            echo "进程 $highest_mem_pid 已被杀死"
        else
            echo "没有找到占用内存最高的进程"
        fi
    else
        echo "剩余内存充足,无需进行操作"
    fi
分类:发行通用