千家信息网

怎么列出正在占用swap的进程

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章将为大家详细讲解有关怎么列出正在占用swap的进程,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。列出正在占用swap的进程#!/bin/bas
千家信息网最后更新 2026年11月01日怎么列出正在占用swap的进程

这篇文章将为大家详细讲解有关怎么列出正在占用swap的进程,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

列出正在占用swap的进程

  1. #!/bin/bash

  2. ###############################################################################

  3. # 日期 : 2011-10-31

  4. # 作者 : xiaoxi227

  5. # Email : xiaoxi227@163.com

  6. # QQ : 543928910

  7. # 版本 : 1.0

  8. # 脚本功能 : 列出正在占用swap的进程。

  9. # 调用关系 :

  10. # 其他说明 :

  11. ###############################################################################

  12. echo -e "PID\t\tSwap\t\tProc_Name"


  13. # 拿出/proc目录下所有以数字为名的目录(进程名是数字才是进程,其他如sys,net等存放的是其他信息)

  14. for pid in `ls -l /proc | grep ^d | awk '{ print $9 }'| grep -v [^0-9]`

  15. do

  16. # 让进程释放swap的方法只有一个:就是重启该进程。或者等其自动释放。

  17. # 如果进程会自动释放,那么我们就不会写脚本来找他了,找他都是因为他没有自动释放。

  18. # 所以我们要列出占用swap并需要重启的进程,但是init这个进程是系统里所有进程的祖先进程

  19. # 重启init进程意味着重启系统,这是万万不可以的,所以就不必检测他了,以免对系统造成影响。

  20. if [ $pid -eq 1 ];then continue;fi # Do not check init process

  21. # 判断改进程是否占用了swap

  22. grep -q "Swap" /proc/$pid/smaps 2>/dev/null

  23. if [ $? -eq 0 ];then # 如果占用了swap

  24. swap=$(grep Swap /proc/$pid/smaps | gawk '{ sum+=$2;} END{ print sum }')

  25. proc_name=$(ps aux | grep -w "$pid" | grep -v grep | awk '{ for(i=11;i<=NF;i++){ printf("%s ",$i); }}')

  26. if [ $swap -gt 0 ];then # 如果占用了swap则输出其信息

  27. echo -e "$pid\t${swap}\t$proc_name"

  28. fi

  29. fi

  30. done | sort -k2 -n | gawk -F'\t' '{ # 按占用swap的大小排序,再用awk实现单位转换。

  31. # 如:将1024KB转换成1M。将1048576KB转换成1G,以提高可读性。

  32. pid[NR]=$1;

  33. size[NR]=$2;

  34. name[NR]=$3;

  35. }

  36. END{

  37. for(id=1;id<=length(pid);id++)

  38. {

  39. if(size[id]<1024)

  40. printf("%-10s\tsKB\t%s\n",pid[id],size[id],name[id]);

  41. else if(size[id]<1048576)

  42. printf("%-10s\t.2fMB\t%s\n",pid[id],size[id]/1024,name[id]);

  43. else

  44. printf("%-10s\t.2fGB\t%s\n",pid[id],size[id]/1048576,name[id]);

  45. }

  46. }'

关于怎么列出正在占用swap的进程就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

进程 正在 系统 信息 内容 数字 文章 更多 目录 知识 篇文章 脚本 不错 作者 功能 单位 只有 可读性 大小 就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司华为 美国互联网保险保险科技 互联网科技公司税收优惠 互联网扶贫科技 猪兼强互联网科技 互联网 科技创业 宜安科技 互联网金融 国外互联网科技网站 上海电发互联网科技有限公司 北京华百购互联网科技有限公司 重庆威客帮互联网科技 赶超互联网科技 微信多开 互联网科技人工智能实验室 玉溪新华互联网科技好不好 合肥互联网科技公司公章图片 山东星卡互联网科技有限公司官网 智帮互联网科技公司最近动向 西安有哪些互联网高科技企业 互联网科技新闻 前海云享互联网科技 金融科技 互联网金融 万易互联网科技有限公司 远信互联网科技 玖二柒互联网科技公司待遇 青岛中康互联网医疗科技有限公司 中国的互联网科技企业的崛起 互联网科技实习生岗位职责 云南省自由互联网科技有限公司 湖北辰鑫科技互联网 重庆科技产业互联网有哪些
0