Linux共享内存的管理详解程序员
2023-06-13 09:19:59 时间
在进程通信应用中会用到共享内存,这就涉及到了IPC,与IPC相关的命令包括:ipcs、ipcrm(释放IPC)。IPCS命令是Linux下显示进程间通信设施状态的工具。我们知道,系统进行进程间通信(IPC)的时候,可用的方式包括信号量、共享内存、消息队列、管道、信号(signal)、套接字等形式[2]。使用IPCS可以查看共享内存、信号量、消息队列的状态。
当下系统是Centos,执行ipcs命令查看
说明:
第一列就是共享内存的key; 第二列是共享内存的编号shmid; 第三列就是创建的用户owner; 第四列就是权限perms; 第五列为创建的大小bytes; 第六列为连接到共享内存的进程数nattach; 第七列是共享内存的状态status。其中显示“dest”表示共享内存段已经被删除,但是还有用户在使用它,当该段内存的mode字段设置为 SHM_DEST时就会显示“dest”。当用户调用shmctl的IPC_RMID时,内存先查看多少个进程与这个内存关联着,如果关联数为0,就会销 毁这段共享内存,否者设置这段内存的mod的mode位为SHM_DEST,如果所有进程都不用则删除这段共享内存。具体的用法总结如下:
1、显示所有的IPC设施
# ipcs -a
2、显示所有的消息队列Message Queue
# ipcs -q
3、显示所有的信号量
# ipcs -s
4、显示所有的共享内存
# ipcs -m
5、显示IPC设施的详细信息
# ipcs -q -i id
id 对应shmid、semid、msgid等。-q对应设施的类型(队列),查看信号量详细情况使用-s,查看共享内存使用-m。
6、显示IPC设施的限制大小
# ipcs -m -l
-m对应设施类型,可选参数包括-q、-m、-s。
7、显示IPC设施的权限关系
# ipcs -c # ipcs -m -c # ipcs -q -c # ipcs -s -c
8、显示最近访问过IPC设施的进程ID。
# ipcs -p # ipcs -m -p # ipcs -q -p
9、显示IPC设施的最后操作时间
# ipcs -t # ipcs -q -t # ipcs -m -t # ipcs -s -t
10、显示IPC设施的当前状态
# ipcs -u
Linux上的ipcs命令,不支持UNIX上的-b、-o指令,同样UNIX中不支持-l、-u指令,所以在编写跨平台的脚本时,需要注意这个问题。
删除IPC
ipcrm -m| -q| -s shm_id
例如,我们在以0x12345678为KEY创建了一个共享内存,可以直接使用ipcrm -M 0x12345678来删除共享内存区域。
下面的命令可以释放所有已分配的共享内存:
ipcs -m | awk $2 ~ /[0-9]+/ {print $2} | while read s; do sudo ipcrm -m $s; done
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/2288.html
服务器部署程序员系统优化网站设置运维相关文章
- Linux查看密码详解程序员
- linux 访问windows共享详解程序员
- Linux find 用法和参数详解程序员
- Linux查找大文件或目录详解程序员
- Linux命令之vi/vim(一)详解程序员
- Linux下的定时任务Crontab详解程序员
- linux下文件夹的创建、复制、剪切、重命名、清空和删除命令详解程序员
- 探索Linux服务器类型之旅(查看linux服务器型号)
- Linux快速安装MySQL数据库详解(linux在线安装mysql)
- Linux查看文件权限的简单方法(linux权限查询)
- Linux下快速任务切换实现高效率(linux任务切换)
- Linux平台上的游戏开发新思路(linux游戏开发)
- Linux下U盘格式化:快速轻松操作(linux下u盘格式化)
- Linux下提升用户体验:探索Sudo权限管理(linux的sudo)
- Linux:字符长度有限,使用有节制(linux字符长度限制)
- Exploring the Power of Linux: Taking Full Advantage of URL Requets(linux请求url)
- 书籍Linux程序员必备:掌握Linux系统与程序设计(适合程序员的linux)
- Linux系统安全优化:让你的服务器更安全(linux系统安全优化)
- 结算系统Linux下的工资结算系统实施研究(linux工资)
- 【Linux网络命令配置详解】(linux配置网络命令)
- 探索 Linux 下查看文件名的方法(linux查看文件名)
- Linux系统运行时间的掌握与管理方法详解(linux运行时间)
- Linux数据备份表格详解(linux 备份表)
- 探索Linux命令:趣味指南(linux命令有趣)
- 深入浅出:Linux系统命令的使用方法(linux系统命令及其使用详解)
- Linux 探索神奇的查找指令(linux查找指令)
- Linux集群监控:稳定运行的关键(linux集群监控工具)
- Linux中CR、LF和CRLF的换行符详解(linux中的换行符)