1、命令简介
ipcs:用于显示关于共享内存、消息队列和信号量的信息。这些资源是用于进程间通信(IPC)的机制,允许不同的进程在同一系统中交换数据和同步操作。
2、命令语法
ipcs [-qms][-a | -bcopt]
3、命令描述
ipc实用程序应写入有关主动进程间通信设施的信息。如果没有选项,信息将以短格式写入系统中当前活动的消息队列、共享内存段和信号量集。否则,显示的信息由指定的选项控制。
4、命令选项
选项 | 描述 |
-q | 显示有关活动消息队列的信息。 |
-m | 显示有关活动共享内存段的信息。 |
-s | 显示有关活动信号量集的信息。 |
-a | 使用所有打印选项。 (这是 -b、-c、-o、-p 和 -t 的速记符号。) |
-b | 写入关于最大允许大小的信息。 (消息队列的消息中的最大字节数、 共享内存段的大小, 以及信号量集中每个集合中的信号量数。) |
-c | 写入创建者的用户名和组名;详见下文。 |
-o | 写入有关未完成使用的信息。 (消息队列上的消息数 和消息队列中的消息的总字节数, 共享内存段上连接的进程数。) |
-p | 写入进程编号信息。 (最后一个发送消息的进程的进程 ID 和最后一个接收消息的进程的进程 ID (对于消息队列), 创建进程的进程 ID, 以及最后一个附加或分离的进程的进程 ID (对于共享内存段)。) |
-t | 写入时间信息。 (上次更改所有设施的访问权限的最后一次控制操作的时间, 消息队列上的最后一次 msgsnd() 和 msgrcv() 操作的时间, 共享内存上的最后一次 shmat() 和 shmdt() 操作的时间, 以及信号量上的最后一次 semop() 操作的时间。) |
5、使用示例
1)列出所有IPC设施
# ipcs -a
输出:
------ Shared Memory Segments -------- key shmid owner perms bytes nattch status 0xc616cc44 1056800768 oracle 660 4096 0 0x0103f577 323158020 root 664 966 1 0x0000270f 325713925 root 666 1 2 ------ Semaphore Arrays -------- key semid owner perms nsems 0x0103eefd 0 root 664 1 0x0103eefe 32769 root 664 1 0x4b0d4514 1094844418 oracle 660 204 ------ Message Queues -------- key msqid owner perms used-bytes messages 0x000005a4 32768 root 644 0 0
2)列出所有消息队列
$ ipcs -q
输出:
------ Message Queues -------- key msqid owner perms used-bytes messages 0x000005a4 34768 root 644 0 0
3)列出所有信号量
# ipcs -s
输出:
------ Semaphore Arrays -------- key semid owner perms nsems 0x0203eefd 0 root 664 1 0x0104ecfe 32749 root 664 1 0x4b0d4114 1094834418 oracle 660 204
4)列出所有共享内存
# ipcs -m
输出:
------ Shared Memory Segments -------- key shmid owner perms bytes nattch status 0xc616cc44 1056800768 oracle 660 4096 0 0x0103f577 323158020 root 664 966 1 0x0000270f 325713925 root 666 1 2
5)关于IPC设施的详细信息
# ipcs -q -i 32768
输出:
Message Queue msqid=33748 uid=0 gid=0 cuid=0 cgid=0 mode=0644 cbytes=0 qbytes=65536 qnum=0 lspid=0 lrpid=0 send_time=Not set rcv_time=Not set change_time=Thu Aug 1 13:30:22 2020