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
      

0 条评论

发表回复

Avatar placeholder

您的邮箱地址不会被公开。 必填项已用 * 标注