ipcs余ipcrm

ipcs 命令

用途

报告进程间通信设施状态。

语法

ipcs [ -m] [ -q] [ -s] [ -S] [ -P] [ -l] [ -a | -b -c -o -p -t] [ -T] [ -C CoreFile] [ -N Kernel ]

描述

ipcs 命令往标准输出写入一些关于活动进程间通信设施的信息。如果没有指定任何标志,ipcs 命令用简短格式写入一些关于当前活动消息队列、共享内存段、信号量、远程队列和本地队列标题。

列标题和在 ipcs 命令中的列的含义列在下面。圆括号内的字母表示导致对应的报头出现的标志。all 设计符表示始终显示报头。这些标志仅仅确定提供给每个设备何种信息。但它们并不确定将列出哪些设备。

T  (all)设施的类型。共有三种设施类型:

q

消息队列

m

共享内存段

s

信号量

ID            (all)设施项的标识。

KEY    (all)用作 msgget 子例程、semget 子例程或者 shmget 子例程的参数的键构成了设施项。

注: 当删除内存段时,共享内存段的密钥改变为 IPC_PRIVATE,直到所有附加在段上的进程和它拆离。

MODE   (all)设施访问方式和标志。这种方式由 11 个字符组成,解释如下:

前两个字符如下所示:

R

如果进程在等待 msgrcv 系统调用。

S

如果进程在等待 msgsnd 系统调用。

D

如果有关的共享内存段被删除。当附加在段上的最后一个进程拆离后它就会消失。

C

当第一个附加进程运行时,如果有关的共享内存段被清空。

-

如果没有设置相应的特定标志。

接下来的九个字符作为每三个一组解释。第一组是指拥有者有许可权;第二组是指在设施项的用户组中其他用户的许可权;最后一组指所有的用户。在每组中,第一个字符表示允许读,第二个字符表示可以写或者修改设施项,最后一个字符当前没有用过。

权限如下所示:

r

如果授予了读许可权。

w

如果授予了写许可权。

a

如果授予了修改许可权。

-

如果没有授予指定的许可权。

OWNER         (all)设施项所有者的登录名。

GROUP         (all)拥有设施项的组名。

CREATOR       (ac)设施项创建者的登录名。

CGROUP (ac)设施项创建者的组名。

注: 对于 OWNERGROUPCREATOR 和 CGROUP,显示用户和组的标识而不显示登录名。

 

如:

sckj-1:/home/hebapp>ipcs

IPC status from /dev/mem as of Mon Jan  4 14:29:22 BEIST 2010

T        ID     KEY        MODE       OWNER    GROUP

Message Queues:

q         0 0x4107001c -Rrw-rw----     root            printq

 

Shared Memory:

m         0 0x58001330 --rw-rw-rw-     root           system

m         1 0xe4663d62 --rw-rw-rw-   imnadm          imnadm

m         2 0x9308e451 --rw-rw-rw-   imnadm          imnadm

m         3 0x52e74b4f --rw-rw-rw-   imnadm          imnadm

m         4 0xc76283cc --rw-rw-rw-   imnadm          imnadm

m         5 0x298ee665 --rw-rw-rw-   imnadm          imnadm

m         6 0xffffffff --rw-rw----       root             system

m         7 0x0d0012b3 --rw-rw-rw-     root    system

m         8 0x25000002 --rw-rw----    gsapp    staff

Semaphores:

s    262144 0x58001330 --ra-ra-ra-     root     system

s         1 0x44001330 --ra-ra-ra-     root     system

s    131074 0xe4663d62 --ra-ra-ra-   imnadm    imnadm

s         3 0x6200120d --ra-r--r--     root      system

s         4 0xffffffff --ra-ra-ra-   imnadm       imnadm

s         5 0xffffffff --ra-ra-ra-   imnadm       imnadm

s    131078 0x01001175 --ra-------     root      system

s    131079 0x660043ea --ra-ra-r--     root      system

 

 

ipcrm 命令

用途

删除消息队列、信号集、或者共享内存标识。

语法

ipcrm [ -m SharedMemoryID ] [ -M SharedMemoryKey ] [ -q MessageID ] [ -Q MessageKey ] [ -s SemaphoreID ] [ -S SemaphoreKey ]

描述

ipcrm 命令删除一个或更多的消息队列、信号量集或者共享内存标识。

标志

-m SharedMemory ID

删除共享内存标识 SharedMemoryID。与 SharedMemoryID 有关联的共享内存段以及数据结构都会在最后一次拆离操作后删除。

-M SharedMemoryKey

删除用关键字 SharedMemoryKey 创建的共享内存标识。与其相关的共享内存段和数据结构段都将在最后一次拆离操作后删除。

-q MessageID

删除消息队列标识 MessageID 和与其相关的消息队列和数据结构。

-Q MessageKey

删除由关键字 MessageKey 创建的消息队列标识和与其相关的消息队列和数据结构。

-s SemaphoreID

删除信号量标识 SemaphoreID 和与其相关的信号量集及数据结构。

-S SemaphoreKey

删除由关键字 SemaphoreKey 创建的信号标识和与其相关的信号量集和数据结构。

msgctlshmctl 和 semctl 子例程提供了删除操作的细节。标识和关键字可以用 ipcs 命令找到。

示例

如果要删除和 SharedMemoryID 18602 相关的共享内存段,请输入:

ipcrm -m 18602

 

 

取得ipc信息:
ipcs [-m|-q|-s]
-m     输出有关共享内存(shared memory)的信息
-q      输出有关信息队列(message queue)的信息
-s      输出有关“遮断器”(semaphore)的信息
# ipcs –m


IPC status from as of 2007年04月10日 星期二 18时32分18秒 CST
T         ID      KEY        MODE        OWNER    GROUP
Shared Memory:
m          0   0x50000d43 --rw-r--r--     root     root
m        501   0x1e90c97c --rw-r-----   oracle      dba


#ipcs |grep oracle

m        501   0x1e90c97c --rw-r-----   oracle      dba


删除ipc(清除共享内存信息)
ipcrm -m|-q|-s shm_id
%ipcrm -m 501

for i in `ipcs |grep oracle|awk   '{print $2}'`
do
ipcrm -m $i
ipcrm -s $i
done

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值