1. 首页
  2. 技术知识

Linux ipcs命令的使用

1.命令简介

ipcs命令用于报告Linux中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息。可以帮助开发人员定位进程间通信X现的问题。


2.命令格式

ipcs [resource-option] [output-format]

ipcs [resource-option] -i id
3.命令选项

-i,–id [id]:详细显示指定资源ID的IPC信息。使用时需要指定资源类型,资源包括消息队列(-q)、共享内存(-m)和信号量(-s)

-h,–help:显示帮助信息

-V,–version:显示版本信息

IPC资源类型选项:

-q,–queues:显示活动的消息队列信息

-m,–shmems:显示活动的共享内存信息

-s, –semaphores:显示活动的信号量信息

-a,–all:显示系统内所有的IPC信息。命令的默认选项

输出格式选项:当指定多个时,以最后一个为准。

-c,–creator:查看IPC的创建者和所有者

-l,–limits:查看IPC资源的限制信息

-p,–pid:查看IPC资源的创建者和最后操作者的进程ID

-t,–time:查看最新调用IPC资源的详细时间。包括msgsnd()和msgrcv()对message queues的操作,shmat()和shmdt()对shared memory的操作,以及semop()对semaphores的操作。

-u,–summary:查看IPC资源状态汇总信息

显示大小单位控制选项:只对选项-l(–limits)生效。

-b,–bytes:以字节为单位显示大小

–human:以可读的格式显示大小
4.常用示例

(1)显示所有IPC信息。

[root@TENCENT64 /]# ipcs

—— Message Queues ——–

key    msqid   owner   perms   used-bytes  messages  

—— Shared Memory Segments ——–

key    shmid   owner   perms   bytes   nattch   status   

0x6674431e 0     root    600    50485760  9

—— Semaphore Arrays ——–

key    semid   owner   perms   nsems   

0x0000870a 0     root    666    1  (2)显示共享内存指定ID的信息。

[root@TENCENT64 /]# ipcs -m -i 32769

Shared memory Segment shmid=32769

uid=0        gid=0        cuid=0        cgid=0

mode=0666        access_perms=0666

bytes=12000        lpid=2784        cpid=1077        nattch=3

att_time=Thu Dec 27 10:39:32 2022

det_time=Thu Dec 27 10:39:32 2022

change_time=Fri Jul 20 13:17:41 2022 (3)查看IPC的创建这和最最后操作者的进程ID。

—— Message Queues PIDs ——–

msqid   owner   lspid   lrpid   

—— Shared Memory Creator/Last-op PIDs ——–

shmid   owner   cpid    lpid   

0     root    702    23364   

32769   root    702    5296   其中lspid代表最近一次向消息队列中发送消息的“进程号”,lrpid对应最近一次从消息队列中读取消息的“进程号”。但请注意:此处的进程号是弱进程号,既它有可能代表的是线程号,如果进程中是起的线程对消息队列发送、接收消息,则此处pid对应的均是线程号。可以采用ps -AL | grep pid来查找该线程对应的进程id。

以上就是Linux ipcs命令的使用的详细内容,更多关于Linux ipcs命令的资料请关注共生网络其它相关文章!

原创文章,作者:starterknow,如若转载,请注明出处:https://www.starterknow.com/107558.html

联系我们