ipcs 命令
用途
报告进程间通信工具状态。
语法
ipcs [ -m] [ -q] [ -s] [ -S] [ -P] [ -1] [ -a | -b -c -o -p -r -t] [ -T] [ -C CoreFile] [ -N Kernel ] [ -X ] [ -@ [ WparName ]]
描述
ipcs 命令往标准输出写入一些关于活动进程间通信工具的信息。 如果没有指定标志,ipcs 命令用简短格式写入一些关于当前活动消息队列、共享内存段、信号量、远程队列和本地队列标题。
列标题和在 ipcs 命令中的列的含义列在下面。 圆括号内的字母表示导致对应的报头出现的标志。 all 设计符表示始终显示报头。 这些标志仅仅确定提供给每个设备何种信息。 但它们并不确定将列示哪些设备。
| 项 | 描述 |
|---|---|
| 云 | (all)工具的类型。 共有三种工具类型:
|
| 标识 | (all)工具项的标识。 |
| key | (all)用作 msgget 子例程、semget 子例程或者 shmget 子例程的参数的键构成了工具项。注: 当删除内存段时,共享内存段的密钥改变为 IPC_PRIVATE,直到所有附加在段上的进程和它拆离。 |
| 方式 | (all)工具访问方式和标志。 这种方式由 11 个字符组成,解释如下: 前两个字符如下所示:
接下来的九个字符作为每三个一组解释。 第一组是指拥有者有许可权;第二组是指在工具项的用户组中其他用户的许可权;最后一组指所有的用户。 在每组中,第一个字符表示允许读取,第二个字符表示可以写或者修改工具项,最后一个字符当前没有用过。 权限如下所示:
|
| 所有者 | (all)工具项所有者的登录名。 |
| GROUP | (all)拥有工具项的组名。 |
| CREATOR | (a、c)工具项创建者的登录名。 |
| CGROUP | (a、c)工具项创建者的组名。注: 对于 OWNER、GROUP、 CREATOR 和 CGROUP,显示用户和组的标识而不显示登录名。 |
| CBYTES | (a、o)当前停留在相关消息队列中的消息的字节数。 |
| QNUM | (a、o)当前停留在相关消息队列中的消息的字节数。 |
| QBYTES | (a、b)停留在相关消息队列中消息允许的最大字节数。 |
| LSPID | (a、p)发送消息到相关队列的最后进程的标识。 如果发送的最后一条消息是来自节点上的进程而不是保留该节点的队列,LSPID 是真正将消息放进队列的内核进程的 PID,而不是发送进程的 PID。 |
| LRPID | (a、p)接收来自相关队列的消息的进程标识。 如果接收的最后一条消息来自一个节点上的进程而不是保留该队列的节点,LRPID 是真正接收队列上消息的内核进程的 PID,而不是接收进程的 PID。 |
| STIME | (a、t)最后一条消息发送到相关队列的时间。 对于远程队列来说,这是服务器时间。 没有做任何措施来补偿本地时钟和服务器时钟之间的时区差异。 |
| RTIME | (a、t)接受最后一条来自相关队列的消息的时间。 对于远程队列来说,这是服务器时间。 没有做任何措施来补偿本地时钟和服务器始终之间的时区差异。 |
| ctime | (a、t)创建和改变相关项的时间。 对于远程队列来说,这是服务器时间。 没有做任何措施来补偿本地时钟和服务器始终之间的时区差异。 |
| NATTCH | (a、o)连接在关联的共享内存段的进程数。 |
| SEGSZ | (a、b)相关联共享内存段的大小(以字节计)。 |
| CPID | (a、p)共享内存项的创建程序的进程标识。 |
| LPID | (a、p)连接或者拆离共享内存段的最后一个进程的标识。 |
| atime | (a、t)最后一次与关联的共享内存段完成连接的时间。 |
| DTIME | (a、t)最后一次与关联的共享内存段完成拆离的时间。 |
| NSEMS | (a、b)在与信号项相关联的信号集中的信号量数量。 |
| 时间 | (a、t)在关联的信号量中完成信号量操作的时间。 |
| SID | (S)共享内存段的标识。 可将 SID用作 斯文 -S 命令的输入。 |
该命令支持多字节字符集。
标志
| 项 | 描述 |
|---|---|
| 一 | 使用 -b、-c、-o、-p 和 -t 标志。 |
| -b | 写入消息队列的队列上消息的最大字节数、共享内存段的大小、每个信号集中信号量的数量。 |
| -c | 写入构建该工具的用户的登录名和组名称。 |
| -C核心文件 | 用由 CoreFile 参数指定的文件来代替 /dev/mem 文件。 CoreFile 参数是由 Ctrl-(left)Alt-Pad1 键序列创建的内存映像文件。 |
| -1 | 当和 -S 标志配合使用时,写入打开的 SID 列表。 |
| -M | 写入一些关于活动共享内存段的信息。 |
| -N内核 | 用指定的 Kernel( /usr/lib/boot/unix 文件是缺省的)。 |
| -O | 写以下的使用信息:
|
| -p | 写进程编号的信息:
|
| -P | 写入与共享内存标识有关的 SID(段标识)列表,以及保留在那个段中的字节数,和段是否已启用大页的标志符。 如果段支持大页面,就显示一个 'Y',否则显示一个 '-'。 |
| -q | 写入一些关于活动消息队列的信息。 |
| -r | 写入有关可移植操作系统接口 (POSIX) 实时进程间通信对象的信息。 |
| -s | 写入一些关于活动信号集的信息。 |
| -S | 写入连接在共享内存标识上的 SID 列表。 |
| -t | 写入时间信息:
|
| -t | 写入带有日期的 -t 标志的输出。 |
| -X | 显示每个用户名和所有者、创建者、所有者组以及创建者组的组名的所有可用字符,而不是将它们截断只剩前面 8 个字符。 |
| -@ [ WparName ] | 报告 工作负载分区的进程间通信工具状态。 如果指定了 WparName ,那么将针对该特定 工作负载分区显示进程间通信设施的状态。 如果未指定 WparName ,那么将显示所有活动 工作负载分区的进程间通信设施的状态。 将显示与该对象关联的 工作负载分区 的名称。 将 Global 指定为 WparName 以仅显示该操作系统环境的 IPC 对象信息,不包括该环境主管的工作负载分区的任何 IPC 信息。 |
注意:
- 如果用户指定 -C 或者 -N 标志,实型和有效的 UID/GID 设置为调用 ipcs 的用户的实型 UID/GID。
- 当运行 ipcs 时可以更改值;仅当检索它时它给出的信息才保证是正确的。
安全性
RBAC 用户和可信AIX用户请注意:此命令可执行特权操作。 只有特权用户才能执行特权限定的操作。 有关授权和权限的更多信息,请参阅安全中的特权命令数据库。 要获取与此命令相关联的特权和权限的列表,请参阅
lssecattr 命令或 getcmdattr 子命令。
示例
输入的输出示例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 | 包含头文件。 |