查看共享内存等信息并清除

来源:互联网 发布:小红帽linux安装教程 编辑:程序博客网 时间:2024/05/02 03:04

在unix/linux下,经常有因为共享内存、信号量,队列等共享信息没有干净地清楚而引起一些问题。


ipcs

ipcrs [-m|-s|-q|-a] id。

-m 列出共享内存,

-s 列出共享信号量,

-q 列出共享队列。

-a 全部列出


ipcrm

使用方式

       ipcrm [ -M key | -m id | -Q key | -q id | -S key | -s id ] ...

说明:删除消息队列、共享内存、信号灯

参数

-M   shmkey删除共享内存

-m   shmid删除共享内存

-Q   msgkey删除消息队列

-q    msgid删除消息队列

-S    semkey删除信号灯

-s    semid删除信号灯


下面来看操作实例

suse-24:~ # ipcs -a

------ Shared Memory Segments --------
key        shmid      owner      perms      bytes      nattch     status     
0x00000000 32768      gdm       600        196608      2          dest        
0x00000000 32799      ora       602        7864608     5          dest

------ Semaphore Arrays --------
key        semid      owner      perms      nsems    
0x4d018352 0          root      600        8        
0x00000000 4128769    sybase    777        250      
0x00000000 4194306    sybase    777        250      

------ Message Queues --------
key        msqid      owner      perms      used-bytes   messages 

suse-24:~ # ipcrm -m 32799
suse-24:~ # ipcrm -s 4128769

在上面示例示例中: 首先用ipcs命令列出了共享内存、共享队列,共享信号量。
显示出当前系统中有共享内存,共享信号量,没有共享队列。
然后执行ipcrm -m 32799 清除共享semid=32799的共享内存。
执行ipcrm -s 4128769 清除共享信号量semid=4128769的共享信号量。
原创粉丝点击