IPCRM(8)

名前
ipcrm - メッセージキュー・セマフォ集合・共有メモリ ID を削除する

書式
ipcrm [ -M key | -m id | -Q key | -q id | -S key | -s id ] ... 以前の使用法 ipcrm [ shm | msg | sem ] id ...

説明
ipcrm は System V プロセス間通信 (interprocess communication, IPC) オブジェクトと、 それに関連するデータ構造をシステムから削除する。 これらのオブジェクトを削除するためには、スーパーユーザーであるか、 オブジェクトの作成者または所有者でなければならない。 System V IPC オブジェクトには、 共有メモリ・メッセージキュー・セマフォの 3 つがある。 メッセージキューオブジェクトとセマフォオブジェクトの削除は、 (他のプロセスがそのオブジェクトの IPC 識別子を 持っていたとしても) 即座に行われる。 共有メモリオブジェクトが削除されるのは、 現在付加 (attach) されている全てのプロセスが (shmdt(2) で) 仮想アドレス空間からオブジェクトを分離 (detach) してからである。 2 つの書式がサポートされている。 昔の Linux で使われていた伝統的な書式では、 削除するオブジェクトの種類を表す 3 文字のキーワードの後に、 その種類のオブジェクトの IPC 識別子を 1 つ以上指定する。 SUS 互換の書式では、1 つのコマンド行で 3 種類のオブジェクトすべてをそれぞれ 0 個以上指定することができ、 オブジェクトの指定はキーまたは識別子 (後述) で行う。 キーと識別子は 10 進数、16 進数 (最初を '0X' または '0x' で表記する)、 8 進数 (最初を '0' で表記する) で指定することができる。

オプション

-M shmkey
    最後の分離が行われた後、 shmkey で作成された共有メモリセグメントを削除する。

-m shmid
    最後の分離が行われた後、 shmid で識別される共有メモリセグメントを削除する。

-Q msgkey
    msgkey で作成されたメッセージキューを削除する。

-q msgid
    msgid で識別されるメッセージキューを削除する。

-S semkey
    semkey で作成されたセマフォを削除する。

-s semid
    semid で識別されるセマフォを削除する。

削除の詳細は msgctl(2), shmctl(2), semctl(2) で説明されている。 識別子とキーは ipcs(8) を使えば分かる。

注意
Linux における最初の実装では、 ipcrm は「書式」にあるような昔の構文を使っていた。 他の *nix における ipcrm の実装に存在する機能、 つまり (識別子だけでなく) キーを指定してリソースを削除する機能と、 同様なコマンドラインの構文が追加された。 後方互換のため、以前の構文もサポートされている。

関連項目
ipcs(8), msgctl(2), msgget(2), semctl(2), semget(2), shmctl(2), shmdt(2), shmget(2), ftok(3)