unix/linux下的共享内存、信号量、队列信息管理
在unix/linux下,经常有因为共享内存、信号量,队列等共享信息没有干净地清楚而引起一些问题。
查看共享信息的内存的命令是ipcs [-m|-s|-q]。
默认会列出共享内存、信号量,队列信息,-m列出共享内存,-s列出共享信号量,-q列出共享队列
清除命令是ipcrm [-m|-s|-q] id。
-m 删除共享内存,-s删除共享信号量,-q删除共享队列。
清除命令是ipcrm [-m|-s|-q] id。
-m 删除共享内存,-s删除共享信号量,-q删除共享队列。
[root@gd-67 ~]# ipcs
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x000000d6 0 root 0 16 1
0x000000e0 32769 root 0 40 2
0x000000e2 65538 root 0 164444 3
0x00000051 98307 root 666 314572800 3
0xffffffff 131076 root 0 40 1
------ Semaphore Arrays --------
key semid owner perms nsems
0x00000000 65536 apache 600 1
0x00000000 32769 apache 600 1
0x00000000 98306 apache 600 1
0x00000000 131075 apache 600 1
------ Message Queues --------
key msqid owner perms used-bytes messages
[root@gd-67 ~]#
共享内存段有时不能马上删除,需使用这个内存段的所有进程向OS发送detach命令时才有释放,此时可以考虑删除进程使用的信号量,帮助释放共享内存段
转载于:https://blog.51cto.com/icooke/1139511