在unix/linux下,經常有因為共享記憶體、訊號量,佇列等共享資訊沒有乾淨地清楚而引起一些問題,ipcs缺省會列出共享記憶體、訊號量,佇列資訊,-m列出共享記憶體,-s列出共享訊號量,-q列出共享佇列。
[root@localhost ~]# ipcs
—— shared memory segments ——–
key shmid owner perms bytes nattch status
0x71a7d46c 0 oracle 640 169869312 34
—— semaphore arrays ——–
key semid owner perms nsems
0x9c7e9a74 98304 oracle 640 154
—— message queues ——–
key msqid owner perms used-bytes messages
0x0000231e 0 gaps 666 0 0
ipcs [-mqs] [-abcopt] [-c core] [-n namelist]
-a : 顯示當前系統中共享記憶體段、訊號量集、訊息佇列的使用情況;
-q:顯示活動的訊息佇列資訊;
-m:顯示活動的共享記憶體資訊;
-s:顯示活動的訊號量資訊。
-a 使用時:
-b 寫入訊息佇列的佇列上訊息的最大位元組數、共享記憶體段的大小、每個訊號量集中訊號量的數量。
-c 寫入構建該設施的使用者的登入名和組名稱。
-o 寫以下的使用資訊:
佇列上的訊息數
訊息佇列上訊息的總位元組數
連線在共享記憶體段上的程序數
-p 寫程序編號的資訊:
最後接收訊息佇列上訊息的程序號
最後在訊息佇列上傳送訊息的程序號
建立程序的程序號
最後乙個連線或拆離共享記憶體段的程序編號
-t 寫入時間資訊:
最後一次更改所有裝置訪問許可權的控制操作的時間
訊息佇列上最後一次執行 msgsnd 和 msgrcv 的時間
共享記憶體上最後一次執行 shmat 和 shmdt 的時間
在訊號量集上最後一次執行 semop 的時間
-c corefile 用由 corefile 引數指定的檔案來代替 /dev/mem 檔案。corefile 引數是由 ctrl-(left)alt-pad1 按鍵順序建立的記憶體映象檔案。
-n kernel 用指定的 kernel( /usr/lib/boot/unix 檔案是預設的)。
注意:
如果使用者指定 -c 或者 -n 標記,實型和有效的 uid/gid 設定為呼叫 ipcs 的使用者的實型 uid/gid。當執行 ipcs 時可以更改值;僅當檢索它時它給出的資訊才保證是正確的。
清除命令是ipcrm [-m|-s|-q] semid
-m 刪除共享記憶體
-s刪除共享訊號量
-q刪除共享佇列。
訊號量又稱為訊號燈,它是用來協調不同程序間的資料物件的,而最主要的應用是共享記憶體方式的程序間通訊。本質上,訊號量是乙個計數器,它用來記錄對某個資源(如共享記憶體)的訪問狀況;共享記憶體是執行在同一臺機器上的程序間通訊最快的方式,因為資料不需要在不同的程序間複製。通常由乙個程序建立一塊共享記憶體區,其餘程序對這塊記憶體區進行讀寫。在linux系統下 ,常用的方式是通過shm***函式族來實現利用共享記憶體進行儲存的。如shmget,類似於 malloc函式。
linux ipcs命令詳解
程序間通訊概述 程序間通訊有如下的目的 1 資料傳輸,乙個程序需要將它的資料傳送給另乙個程序,傳送的資料量在乙個位元組到幾m之間 2 共享資料,多個程序想要操作共享資料,乙個程序對資料的修改,其他程序應該立刻看到 3 通知事件,乙個程序需要向另乙個或一組程序傳送訊息,通知它們發生了某件事情 4 資源...
Linux ipcs命令與ipcrm命令的用法詳解
以下是對linux中的ipcs命令與ipcrm命令的用法進行了介紹,需要的朋友可以過來參考下 是linux uinx上提供關於一些程序間通訊方式的資訊,包括共享記憶體,訊息佇列,訊號 ipcs用法 ipcs a 是預設的輸出資訊 列印出當前系統中所有的程序間通訊方式的資訊 ipcs m 列印出使用共...
Linux ipcs命令及ipcrm命令的用法
是linux uinx上提供關於一些程序間通訊方式的資訊,包括共享記憶體,訊息佇列,訊號 ipcs用法 ipcs a 是預設的輸出資訊 列印出當前系統中所有的程序間通訊方式的資訊 ipcs m 列印出使用共享記憶體進行程序間通訊的資訊 ipcs q 列印出使用訊息佇列進行程序間通訊的資訊 ipcs ...