如何获取内存使用率大于的所有进程ID

时间:2014-11-11 10:31:07

标签: linux bash unix sh ps

我需要获得内存使用量大于或低于预定数量的所有进程ID。例如,获取id,其中内存(rss)的使用量大于10MB,然后使用此id杀死每个进程。感谢

2 个答案:

答案 0 :(得分:1)

以下命令对我有帮助,

ps aux --sort -rss

试试吧。

答案 1 :(得分:0)

那不是个好主意。您肯定会杀死不应该处理的进程,并且可能会在此过程中损坏您的系统。但无论如何,这里的诀窍是什么:

ps -eo rss=,pid=,user=,comm= k -rss |
  while read size pid user comm
  do
    [ "$user" = "alfe" ] || continue  # adjust user name here
    if [ "$size" -gt 10000 ]
    then
      echo "kill $pid # $size $user $comm"
    else
      break
    fi
  done

您可能希望直接使用echo替换kill行,但正如我所说,这可能会杀死您不应该杀死的进程。

continue行是为了跳过非特定用户的所有进程;我只是假设;如果您打算将其作为root运行,请随意删除该行。