ipcrm

删除消息队列、共享内存与信号灯


语法格式

ipcrm [-M shmkey|-m shmid|-Q msgkey|-q msgid|-S semkey|-s semid]
ipcrm {shm|msg|sem} ids

命令简介

ipcrm命令用于删除系统中System V类型的进程间通信(IPC)资源对象与有关的数据结构。必须是超级用户、资源对象的拥有者或创建者,才能删除相关的资源对象。

System V进程间通信的资源对象具有3种类型:共享内存、消息队列与信号灯。消息队列或信号灯资源对象的删除是立即执行的,不管任何进程是否仍然持有相应IPC资源对象的标识符。而共享内存的删除需要当前使用相应共享内存对象的所有进程从其虚拟地址空间移除之后才能生效。

ipcrm支持两种风格的语法格式。第一种新的语法格式相对比较灵活,可以利用不同的选项与参数,在一个命令行上同时指定多个资源对象类型,按照键值或标识符删除相应的资源对象。且在指定键值与标识符时,可以采用十进制、十六进制(加“0x”或“0X”前缀)或八进制(加前置0)的数值。

第二种是即将废弃的老的语法格式,采用3个三字符的关键字表示需要删除哪一类的资源对象,ids参数是一个或多个同类型的资源对象标识符。

注意,在删除进程间通信的资源对象之前,通常需要先运行ipcs命令,获取相应的键值与标识符。

命令选项

-M shmkey  延迟执行直至相关进程都移除指定键值shmkey的共享内存段之后,再删除指定键值shmkey的共享内存段(详见ipcs命令输出的共享内存段的key字段)。

-m shmid  延迟执行直至相关进程都移除shmid标识的共享内存段之后,再删除shmid标识的共享内存段(详见ipcs命令输出的shmid字段)。

-Q msgkey  删除指定键值msgkey的消息队列(详见ipcs命令输出的消息队列的key字段)。

-q msgid  删除msgid标识的消息队列(详见ipcs命令输出的msqid字段)。

-S semkey  删除指定键值semkey的信号灯(详见ipcs命令输出的信号灯的key字段)。

-s semid  删除semid标识的信号灯(详见ipcs命令输出的semid字段)。

应用实例

1. 删除指定标识符的共享内存段。

$ ipcrm -m 655376
$

2. 删除指定标识符的消息队列。

$ ipcrm -q 0
$

3. 删除指定标识符的信号灯。

$ ipcrm -s 0131074
$

索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z