Content-Description: [** BIG-5 charset **] [GNU/Linux] ipcrm -- 清除 shm
[GNU/Linux] ipcrm -- 清除 shm
*/ 前言 /*
IPC -- Inter Proccess Channel,是在以 System V 系統上提供 個行程間溝通的方式之一。利用記憶體中 Shared Memory,Semaphore Array 和 Message Queue 來提供行程間通訊的管道。常見的例子 如一服務級行程所衍生的眾多子行程,可透過 IPC 的機制來互相 溝通。
ipcrm -- 當我們使用了 ipcs 檢視了 Shared Memory, Semaphore Array 和 Message Queue 的資訊,就可以利用 ipcrm 來清除不要 或不正確的 shm, sem 或 msg 內容。以筆者架 BBS 的經驗中,當 修改 BBS 程式後如果需要更動 shm 中的資料,就必須使用 ipcrm 來清除之前的 shm 了。ipcrm 與 ipcs 是同一位作者 krishna balasubramanian (balasub@cis.ohio-state.edu)。
*/ 路徑 /*
以筆者安裝的 RedHat Linux 7.0 為例,ipcrm 是放置在 /usr/bin 下。
*/ 所使用的 shared library /*
在筆者所使用的 RedHat Linux 7.0 下,ipcrm 所使用到的 shared library 有 libc.so, ld-linux.so。
*/ 使用說明及範例 /*
ipcrm 的使用相當簡單,當我們下此指令不加參數時會顯示使用的 方法:
[root]# ipcrm
usage: ipcrm {shm | msg | sem} id ...
因此要清除 shmid=0 的 shm 就是下指令 ipcrm shm 0;要清除 semid=0 的 sem 就是下指令 ipcrm sem 0;要清除 msgid=0 的 msg 就是下指令 ipcrm msg 0。
要注意的是,當該 ID 的 perms 不允許你作 ipcrm 時會回應 permission denied 的錯誤訊息。
而更詳細的資訊可以 man ipcrm 得到。
*/ 勘誤資訊 /*
本文如有謬誤或建議,請來信筆者的電子郵件信箱。
gjchen@csie.nctu.edu.tw 交大資工 陳俊哲