名前

ipcrm - 所定の IPC リソースを削除する

書式

ipcrm [options]

ipcrm [shm|msg|sem] ID ...

説明

ipcrm は System V プロセス間通信 (inter-process communication; IPC) のオブジェクトと、 関連するデータ構造を、 システムから削除する。 そのようなオブジェクトを削除するためには、 スーパーユーザーであるか、 またはそのオブジェクトの生成者、所有者であることが必要である。

System V IPC オブジェクトには、 以下の 3 つのタイプがある。 共有メモリー、 メッセージキュー、 セマフォーである。 メッセージキューとセマフォーのオブジェクトの削除は、 即座に行われる (オブジェクトの IPC 識別子を保持するプロセスが、 存在していても関係なく行われる)。 共有メモリーオブジェクトの場合は、 関連オブジェクトが、 現在アタッチされているプロセスが、 仮想アドレス空間からすべてデタッチ (shmdt(2) された後に、削除される。

2 つの文法スタイルがサポートされる。 古い Linux において用いられている、 従来からの文法では、 3 文字によるキーワードを指定する。 これは削除するオブジェクトクラスを表し、 後ろに、 そのタイプのオブジェクトに対する IPC 識別子を、 1 つまたは複数指定する。

SUS 準拠の文法では、 3 つのオブジェクトタイプを 0 個から複数個にわたって、 1 つのコマンドライン上に指定することができる。 その場合に、 オブジェクトは、 キーまたは識別子によって指定する (下記参照)。 キーおよび識別子は、 10 進数表現、 16 進数表現 (先頭に '0x' または '0X' をつけて指定)、 8 進数表現 (先頭に '0' をつけて指定) が可能である。

削除に関する詳細は、 shmctl(2), msgctl(2), semctl(2) において説明されている。 識別子とキーは ipcs(1) を用いて見つけ出すことができる。

オプション

-a, --all [shm] [msg] [sem]

すべてのリソースを削除する。 オプション引数が指定された場合、 これによって指定されるリソースタイプのもののみが削除される。

警告! リソースを利用するソフトウェアが、 そのリソースがなくなった場合に、 どのような動作になるかが不明であれば、 -a を用いるべきではない。 プログラムの中には、 起動時にリソースを生成するものの、 それがなくなった際に、 どのように動作するかをコード上で定めていないものがあるかもしれない。

-M, --shmem-key shmkey

最後にデタッチ処理が行われた後に、 shmkey によって生成された共有メモリーセグメントを削除する。

-m, --shmem-id shmid

最後にデタッチ処理が行われた後に、 shmkey によって識別される共有メモリーセグメントを削除する。

-Q, --queue-key msgkey

msgkey によって生成されたメッセージキューを削除する。

-q, --queue-id msgid

msgid によって識別されるメッセージキューを削除する。

-S, --semaphore-key semkey

semkey によって生成されたセマフォーを削除する。

-s, --semaphore-id semid

semid によって識別されるセマフォーを削除する。

-h, --help

ヘルプを表示して終了する。

-V, --version

バージョンを表示して終了する。

注意

最初の Linux 実装において、 ipcrm は、 書式 の 2 行めに示している、 非推奨の文法を用いていた。 その後、 他の *nix 実装において、 ipcrm に対する機能が追加された。 つまり、 リソースの削除を (識別子だけでなく) キーによっても行えるようになり、 これは、 同様のコマンドライン文法を尊重したものである。 以前のその文法も、 後方互換のため、 まだサポートされている。

関連項目

ipcmk(1), ipcs(1), msgctl(2), msgget(2), semctl(2), semget(2), shmctl(2), shmdt(2), shmget(2), ftok(3), sysvipc(7)

バグ報告

バグ報告は、 以下にある issue トラッカーを利用すること。 <https://github.com/util-linux/util-linux/issues>.

入手方法

ipcrm コマンドは util-linux パッケージの一部であり、 以下からダウンロードできる。 Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.