Prayer

在一般中寻求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

ipcs 命令

Posted on 2009-04-22 14:14 Prayer 阅读(803) 评论(0)  编辑 收藏 引用 所属分类: ShellLINUX/UNIX/AIX

用途

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

语法

ipcs[-m] [-q] [-s] [-S] [-P] [-l] [-a|-b-c-o-p-t] [-T] [-CCoreFile] [-NKernel]

描述

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)设施项创建者的组名。

 

注:对于OWNERGROUPCREATORCGROUP,显示用户和组的标识而不显示登录名。
CBYTES ao)当前停留在相关消息队列中的消息的字节数。
QNUM ao)当前停留在相关消息队列中的消息的字节数。
QBYTES ab)停留在相关消息队列中消息允许的最大字节数。
LSPID ap)发送消息到相关队列的最后进程的标识。如果发送的最后一条消息是来自节点上的进程而不是保留该节点的队列,LSPID是真正把消息放进队列的内核进程的 PID,而不是发送进程的 PID。
LRPID ap)接收来自相关队列的消息的进程标识。如果接收的最后一条消息来自一个节点上的进程而不是保留该队列的节点,LRPID是真正接收队列上消息的内核进程的 PID ,而不是接收进程的 PID。
STIME at)最后一条消息发送到相关队列的时间。对于远程队列,这是服务器时间。没有做任何措施来补偿本地时钟和服务器时钟之间的时区差异。
RTIME at)接受最后一条来自相关队列的消息的时间。对于远程队列来说,这是服务器时间。没有做任何措施来补偿本地时钟和服务器始终之间的时区差异。
CTIME at)创建和改变相关项的时间。对于远程队列,这是服务器时间。没有做任何措施来本地时钟和服务器时钟之间的任何时区差异。
NATTCH ao)连接在关联的共享内存段的进程数。
SEGSZ ab)关联的共享内存段的大小。
CPID ap)共享内存项的创建程序的进程标识。
LPID ap)连接或者拆离共享内存段的最后一个进程的标识。
ATIME at)最后一次与关联的共享内存段完成连接的时间。
DTIME at)最后一次与关联的共享内存段完成拆离的时间。
NSEMS ab)在与信号项相关联的信号集中的信号量数量。
OTIME at)在关联的信号量中完成信号量操作的时间。
SID S)共享内存段的标识。SID可以用作svmon-S命令的输入。

该命令支持多字节字符集。

标志

 

-a 使用-b-c-o-p-t标志。
-b 写入消息队列的队列上消息的最大字节数、共享内存段的大小、每个信号量集中信号量的数量。
-c 写入构建该设施的用户的登录名和组名称。
-CCoreFile 用由CoreFile参数指定的文件来代替/dev/mem文件。CoreFile参数是由 Ctrl-(left)Alt-Pad1 按键顺序创建的内存映像文件。
-l 当和-S标志一起使用时,该标志写入未展开的SID列表。
-m 写入一些关于活动共享内存段的信息。
-NKernel 用指定的Kernel/usr/lib/boot/unix文件是缺省的)。
-o 写以下的使用信息:
  • 队列上的消息数
  • 消息队列上消息的总字节数
  • 连接在共享内存段上的进程数
-p 写进程编号的信息:
  • 最后接收消息队列上消息的进程号
  • 最后在消息队列上发送消息的进程号
  • 创建进程的进程号
  • 最后一个连接或拆离共享内存段的进程编号
-P 写入与共享内存标识有关的 SID(段标识)列表,以及保留在那个段中的字节数,和段是否已启用大页的标志符。如果段支持大页面,就显示一个 'Y',否则显示一个 '-'。
-q 写入一些关于活动消息队列的信息。
-s 写入一些关于活动信号量集的信息。
-S 写入连接在共享内存标识上的SID列表。
-t 写入时间信息:
  • 最后一次更改所有设备访问许可权的控制操作的时间。
  • 消息队列上最后一次执行msgsndmsgrcv的时间。
  • 共享内存上最后一次执行shmatshmdt的时间。
  • 在信号量集上最后一次执行semop的时间。
-T 写入带有日期的-t标记的输出。
注:
  1. 如果用户指定-C或者-N标记,实型和有效的 UID/GID 设置为调用ipcs的用户的实型 UID/GID。
  2. 当运行ipcs时可以更改值;仅当检索它时它给出的信息才保证是正确的。

示例

示例显示输入不带标志的ipcs:的输出

 

IPC status from /dev/mem as of Mon Aug 14 15:03:46 1989
T    ID         KEY        MODE       OWNER     GROUP
Message Queues:
q       0    0x00010381 -Rrw-rw-rw-   root      system
q   65537    0x00010307 -Rrw-rw-rw-   root      system
q   65538    0x00010311 -Rrw-rw-rw-   root      system
q   65539    0x0001032f -Rrw-rw-rw-   root      system
q   65540    0x0001031b -Rrw-rw-rw-   root      system
q   65541    0x00010339--rw-rw-rw-    root      system
q       6    0x0002fe03 -Rrw-rw-rw-   root      system
Shared Memory:
m   65537    0x00000000 DCrw-------   root      system
m  720898    0x00010300 -Crw-rw-rw-   root      system
m   65539    0x00000000 DCrw-------   root      system
Semaphores:
s  131072    0x4d02086a --ra-ra----   root      system
s   65537    0x00000000 --ra-------   root      system
s 1310722    0x000133d0 --ra-------   7003      30720

文件

 

/usr/lib/boot/unix 指定系统内核映像。
/dev/mem 指定内存。
/etc/passwd 指定用户名。
/etc/group 指定组名。
/usr/include/sys/ipc.h

包含头文件。


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理