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。
以上就是Linux ipcs命令的使用的詳細內容,更多關于Linux ipcs命令的資料請關注腳本之家其它相關文章!