在进程通讯应用中会用到共享显存,这就涉及到了IPClinux之家,与IPC相关的命令包括:ipcs、ipcrm(释放IPC)。IPCS命令是Linux下显示进程间通讯设施状态的工具。我们晓得,系统进行进程间通讯(IPC)的时侯,可用的方法包括讯号量、共享显存、消息队列、管道、信号(signal)、套接字等方式[2]。使用IPCS可以查看共享显存、信号量、消息队列的状态。
当下系统是UbuntuLinux18.04,执行ipcs命令查看
linuxidc@linuxidc:~/$ipcs
---------消息队列-----------
键msqid拥有者权限已用字节数消息
------------共享显存段--------------
键shmid拥有者权限字节联接数状态
0x017linuxidc6005242882目标
0x086linuxidc6005242882目标
0x055linuxidc6005242882目标
0x0780linuxidc600167772162目标
0x0453linuxidc600167772162目标
0x062linuxidc6005242882目标
0x0759linuxidc60041943042目标
0x0591linuxidc600671088642目标
---------讯号量字段-----------
键semid拥有者权限nsems
说明:
具体的用法总结如下:
1、显示所有的IPC设施
linuxidc@linuxidc:~/$ipcs-a
---------消息队列-----------
键msqid拥有者权限已用字节数消息
------------共享显存段--------------
键shmid拥有者权限字节联接数状态
0x0128linuxidc6005242882目标
0x017linuxidc6005242882目标
0x086linuxidc6005242882目标
0x055linuxidc6005242882目标
0x0780linuxidc600167772162目标
0x0901linuxidc600167772162目标
0x062linuxidc6005242882目标
0x0759linuxidc60041943042目标
0x0591linuxidc600671088642目标
---------讯号量字段-----------
键semid拥有者权限nsems
2、显示所有的消息队列MessageQueue
#ipcs-q
3、显示所有的讯号量
#ipcs-s
4、显示所有的共享显存
#ipcs-m
5、显示IPC设施的详尽信息
#ipcs-q-iid
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设施的当前状态
linuxidc@linuxidc:~/$ipcs-u
----------消息状态-----------
已分配队列数=0
已用消息头(header)数=0
已用空间=0字节
----------共享显存状态------------
段已分配11
页已分配27256
页留驻7083
页交换0
交换性能:0次尝试0次成功
---------讯号量状态-----------
已使用链表=0
已分配讯号量数=0
Linux上的ipcs命令linux系统内存管理,不支持UNIX上的-b、-o指令linux手机,同样UNIX中不支持-l、-u指令linux系统内存管理,所以在编撰跨平台的脚本时,须要注意这个问题。
删掉IPC
ipcrm-m|-q|-sshm_id
比如,我们在以0x12345678为KEY创建了一个共享显存,可以直接使用ipcrm-M0x12345678来删掉共享显存区域。
下边的命令可以释放所有已分配的共享显存:
ipcs-m|awk'$2~/[0-9]+/{print$2}'|whilereads;dosudoipcrm-m$s;done
Linux公社的RSS地址:
本文永久更新链接地址: