我需要获得内存使用量大于或低于预定数量的所有进程ID。例如,获取id,其中内存(rss)的使用量大于10MB,然后使用此id杀死每个进程。感谢
答案 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
运行,请随意删除该行。