ipcs 命令詳解

2021-09-20 19:08:11 字數 3148 閱讀 9120

ipcs 命令詳解

用途報告程序間通訊設施狀態。

語法ipcs [ -m] [ -q] [ -s] [ -s] [ -p] [ -l] [ -a | -b -c -o -p -t] [ -t] [ -c corefile] [ -n kernel ]

描述ipcs 命令往標準輸出寫入一些關於活動程序間通訊設施的資訊。如果沒有指定任何標誌,ipcs 命令用簡短格式寫入一些關於當前活動訊息佇列、共享記憶體段、訊號量、遠端佇列和本地佇列標題。

列標題和在 ipcs 命令中的列的含義列在下面。圓括號內的字母表示導致對應的報頭出現的標誌。all 設計符表示始終顯示報頭。這些標誌僅僅確定提供給每個裝置何種資訊。但它們並不確定將列出哪些裝置。

t (all)設施的型別。共有三種設施型別:

q訊息佇列

m共享記憶體段

s訊號量

id (all)設施項的標識。

key (all)用作 msgget 子例程、semget 子例程或者 shmget 子例程的引數的鍵構成了設施項。

注: 當刪除記憶體段時,共享記憶體段的金鑰改變為 ipc_private,直到所有附加在段上的程序和它拆離。

mode (all)設施訪問方式和標誌。這種方式由 11 個字元組成,解釋如下:

前兩個字元如下所示:

r如果程序在等待 msgrcv 系統呼叫。

s如果程序在等待 msgsnd 系統呼叫。

d如果有關的共享記憶體段被刪除。當附加在段上的最後乙個程序拆離後它就會消失。

c當第乙個附加程序執行時,如果有關的共享記憶體段被清空。

-如果沒有設定相應的特定標誌。

接下來的九個字元作為每三個一組解釋。第一組是指擁有者有許可權;第二組是指在設施項的使用者組中其他使用者的許可權;最後一組指所有的使用者。在每組中,第乙個字元表示允許讀,第二個字元表示可以寫或者修改設施項,最後乙個字元當前沒有用過。

許可權如下所示:

r如果授予了讀許可權。

w如果授予了寫許可權。

a如果授予了修改許可權。

-如果沒有授予指定的許可權。

owner (all)設施項所有者的登入名。

group (all)擁有設施項的組名。

creator (a、c)設施項建立者的登入名。

cgroup (a、c)設施項建立者的組名。

注: 對於 owner、group、creator 和 cgroup,顯示使用者和組的標識而不顯示登入名。

cbytes (a、o)當前停留在相關訊息佇列中的訊息的位元組數。

qnum (a、o)當前停留在相關訊息佇列中的訊息的位元組數。

qbytes (a、b)停留在相關訊息佇列中訊息允許的最大位元組數。

lspid (a、p)傳送訊息到相關佇列的最後程序的標識。如果傳送的最後一條訊息是來自節點上的程序而不是保留該節點的佇列,lspid 是真正把訊息放進佇列的核心程序的 pid,而不是傳送程序的 pid。

lrpid (a、p)接收來自相關佇列的訊息的程序標識。如果接收的最後一條訊息來自乙個節點上的程序而不是保留該佇列的節點,lrpid 是真正接收佇列上訊息的核心程序的 pid ,而不是接收程序的 pid。

stime (a、t)最後一條訊息傳送到相關佇列的時間。對於遠端佇列,這是伺服器時間。沒有做任何措施來補償本地時鐘和伺服器時鐘之間的時區差異。

rtime (a、t)接受最後一條來自相關佇列的訊息的時間。對於遠端佇列來說,這是伺服器時間。沒有做任何措施來補償本地時鐘和伺服器始終之間的時區差異。

ctime (a、t)建立和改變相關項的時間。對於遠端佇列,這是伺服器時間。沒有做任何措施來本地時鐘和伺服器時鐘之間的任何時區差異。

nattch (a、o)連線在關聯的共享記憶體段的程序數。

segsz (a、b)關聯的共享記憶體段的大小。

cpid (a、p)共享記憶體項的建立程式的程序標識。

lpid (a、p)連線或者拆離共享記憶體段的最後乙個程序的標識。

atime (a、t)最後一次與關聯的共享記憶體段完成連線的時間。

dtime (a、t)最後一次與關聯的共享記憶體段完成拆離的時間。

nsems (a、b)在與訊號項相關聯的訊號集中的訊號量數量。

otime (a、t)在關聯的訊號量中完成訊號量操作的時間。

sid (s)共享記憶體段的標識。sid 可以用作 svmon -s 命令的輸入。

該命令支援多位元組字符集。

標誌-a 使用 -b、-c、-o、-p 和 -t 標誌。

-b 寫入訊息佇列的佇列上訊息的最大位元組數、共享記憶體段的大小、每個訊號量集中訊號量的數量。

-c 寫入構建該設施的使用者的登入名和組名稱。

-ccorefile 用由 corefile 引數指定的檔案來代替 /dev/mem 檔案。corefile 引數是由 ctrl-(left)alt-pad1 按鍵順序建立的記憶體映像檔案。

-l 當和 -s 標誌一起使用時,該標誌寫入未展開的 sid 列表。

-m 寫入一些關於活動共享記憶體段的資訊。

-nkernel 用指定的 kernel( /usr/lib/boot/unix 檔案是預設的)。

-o 寫以下的使用資訊:

佇列上的訊息數

訊息佇列上訊息的總位元組數

連線在共享記憶體段上的程序數

-p 寫程序編號的資訊:

最後接收訊息佇列上訊息的程序號

最後在訊息佇列上傳送訊息的程序號

建立程序的程序號

最後乙個連線或拆離共享記憶體段的程序編號

-p 寫入與共享記憶體標識有關的 sid(段標識)列表,以及保留在那個段中的位元組數,和段是否已啟用大頁的標誌符。如果段支援大頁面,就顯示乙個 'y',否則顯示乙個 '-'。

-q 寫入一些關於活動訊息佇列的資訊。

-s 寫入一些關於活動訊號量集的資訊。

-s 寫入連線在共享記憶體標識上的 sid 列表。

-t 寫入時間資訊:

最後一次更改所有裝置訪問許可權的控制操作的時間。

訊息佇列上最後一次執行 msgsnd 和 msgrcv 的時間。

共享記憶體上最後一次執行 shmat 和 shmdt 的時間。

在訊號量集上最後一次執行 semop 的時間。

-t 寫入帶有日期的 -t 標記的輸出。

注:如果使用者指定 -c 或者 -n 標記,實型和有效的 uid/gid 設定為呼叫 ipcs 的使用者的實型 uid/gid。

當執行 ipcs 時可以更改值;僅當檢索它時它給出的資訊才保證是正確的

ipcs命令學習

參考這篇 ipcs m s q 分別對應集中ipc ipcs l 顯示limits ipcs l shared memory limits max number of segments 4096max seg size kbytes 32768max total shared memory kbyt...

ipcs檢視訊息佇列命令

修改訊息佇列大小 root 使用者 etc sysctl.conf kernel.msgmnb 4203520 kernel.msgmnb 3520 kernel.msgmni 2878 儲存後需要執行 sysctl p 然後重建所有訊息佇列 ipcs q 顯示所有的訊息佇列 ipcs qt 顯示訊...

Linux作業系統ipcs命令

linux作業系統ipcs命令 ipcs 主要提供呼叫程序讀取訪問一些ipc裝置資訊.如 共享記憶體,訊號量,訊息佇列 ipcs asmq tclup ipcs smq i id m 輸出共享記憶體 shared memory segments 的資訊 s 輸出訊號量 semaphore 的資訊 q...