专栏首页C/C++基础Linux命令(51)——ipcs命令

Linux命令(51)——ipcs命令

1.命令简介

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

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 2018  
det_time=Thu Dec 27 10:39:32 2018  
change_time=Fri Jul 20 13:17:41 2018 

(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。


参考文献

[1]man ipcs [2]ipcs和ipcsrm 命令的使用方法 [3]工作中常用的Linux命令:ipcs/ipcrm命令 [4]ipcs命令详解——共享内存、消息队列、信号量定位利器

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • C++11新特性——range for

    很多编程语言都有range for语法功能,自C++11起,终于将这个重要功能加入C++标准中。range for语句,可以方便的遍历给定序列中的每个元素并对其...

    Dabelv
  • Linux命令(29)——ls命令

    ls命令用来显示目录内容,在Linux中是使用率较高的命令。ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。

    Dabelv
  • Google C++编程风格指南(一)之头文件的相关规范

    一个良好的编程规范和风格是一名程序猿成熟的标志。规范的编码可以减少代码冗余,降低出错概率,便于代码管理和代码交流等等,事实上,其作用远不止这些,我们要牢记编码规...

    Dabelv
  • Python 3.8 一周后发布,这几个特性值得关注

    海象运算符是 3.8 版本中最引人瞩目的新特性,因其 := 外观而被称为海象运算符(walrus operator)。引入该运算符的是 PEP 572,而也正是...

    用户2769421
  • AI本质也是复读机?阿里和浙大联合推出读唇模型,中英双语实时复述

    2002年世界杯上,法国球员齐达内到底被对手的话激怒,狠狠地拿头撞击对方胸口被逐出赛场,他的对手到底说了什么呢?——AI也许可以给出答案。

    大数据文摘
  • 楼层

    河湾欢儿
  • (翻译)现代网络负载平衡和代理简介(一)

    最近注意到,关于现代网络负载均衡和代理可用的介绍性教育材料很少。心想:怎么会这样呢?负载均衡可是关于构造可靠的分布式系统所需核心概念之一啊,有高质量的信息么?我...

    仇诺伊
  • CCNP知识点总结——RIP、EIGRP

    版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/...

    魏晓蕾
  • 大前端时代,浅谈JavaScript开发重型跨平台应用以及架构

    不知不觉,九月就要过去,由于这个月工作上,被C++折磨得很难受,而且其他时间都在学习,所以没有时间写文章,好在技术提升很大。今天准备好好谈一谈重型应用的架构以及...

    Peter谭金杰
  • 并发篇-python多进程

    >>>Process([group [, target [, name [, args [, kwargs ] ] ] ] ])

    小团子

扫码关注云+社区

领取腾讯云代金券