1.命令簡介
ipcs 命令用于查看 Linux 進程間通信設施的狀態,包括消息列表、共享內存和信號量的信息。可以幫助開發人員定位進程間通信中出現的問題。
注意,本文描述的是 util-linux 版 ipcs,和其它版本(如 POSIX 版)的實現可能會有出入。
2.命令格式
ipcs[resource-option][output-format]
ipcs[resource-option]-iid
3.命令選項
-i,--idID
詳細顯示指定資源 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信息。
(2)顯示共享內存指定ID的信息。
[root@TENCENT64/]#ipcs-m-i32769
SharedmemorySegmentshmid=32769
uid=0gid=0cuid=0cgid=0
mode=0666access_perms=0666
bytes=12000lpid=2784cpid=1077nattch=3
att_time=ThuDec2710322018
det_time=ThuDec2710322018
change_time=FriJul2013412018
(3)查看 IPC 的創建這和最最后操作者的進程 ID。
------MessageQueuesPIDs--------
msqidownerlspidlrpid
------SharedMemoryCreator/Last-opPIDs--------
shmidownercpidlpid
0root70223364
32769root7025296
其中 lspid 代表最近一次向消息隊列中發送消息的“進程號”,lrpid 對應最近一次從消息隊列中讀取消息的“進程號”。但請注意:此處的進程號是弱進程號,既它有可能代表的是線程號,如果進程中是起的線程對消息隊列發送、接收消息,則此處 pid 對應的均是線程號。可以采用ps -AL | grep pid
來查找該線程對應的進程 id。
參考文獻
[1] ipcs(1) manual
[2] Index of /pub/linux/utils/util-linux/
[3] ipcs和ipcsrm 命令的使用方法
[4] 工作中常用的Linux命令:ipcs/ipcrm命令
[5] ipcs命令詳解——共享內存、消息隊列、信號量定位利器
責任編輯:xj
原文標題:每天一個 Linux 命令(111):ipcs 命令
文章出處:【微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。
-
Linux
+關注
關注
87文章
11304瀏覽量
209524 -
命令
+關注
關注
5文章
684瀏覽量
22027 -
通信設施
+關注
關注
0文章
7瀏覽量
6592
原文標題:每天一個 Linux 命令(111):ipcs 命令
文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論