ipcs コマンド

目的

プロセス間通信機能の状況を報告します。

構文

ipcs [ -m ] [ -q] [ -s] [ -S] [ -P] [ -1] [ -a | -b -c -o -p -r -t] [ -T] [ -C CoreFile] [ -N Kernel ] [ -X ] [ -@ [ WparName ] ]

説明

ipcs コマンドは、アクティブなプロセス間通信機能についての情報を標準出力へ書き出します。 フラグを指定しない場合、 ipcs コマンドは現在アクティブになっているメッセージ・キュー、共用メモリー・セグメント、セマフォー、リモート・キュー、ローカル・キュー・ヘッダーに関する情報を簡略形式で書き出します。

ipcs コマンドの列見出しと列の意味を、以下に示します。括弧内の文字は、対応する見出しを表示するためのフラグを表します。 指定子 all は、見出しが常に表示されることを表します。これらのフラグは、各機能に関してどのような情報を提供するかを決定するだけです。 どの機能をリストするかについては、決定しません。

項目 説明
T (all) 機能のタイプ。次の 3 つの機能タイプがあります。
q
メッセージ・キュー
m
共用メモリー・セグメント
s
セマフォー
ID (all) 機能エントリーの ID。
KEY (all) 機能エントリーを作成するために、 msgget サブルーチン、semget サブルーチン、または shmget サブルーチンのパラメーターとして使用されるキー。

注: 共用メモリー・セグメントが除去されると、そのセグメントのキーは、セグメントに付加されたすべてのプロセスが切り離されるまで IPC_PRIVATE に変更されます。

MODE (all) 機能アクセス・モードおよびフラグ。モードは 11 個の文字で構成され、次のように解釈されます。

最初の 2 つの文字として次のものがあります。

R
msgrcv システム・コール時にプロセスが待ち状態になっています。
S
msgsnd システム・コール時にプロセスが待ち状態になっています。
D
関連する共用メモリー・セグメントが除去されています。セグメントに付加されている最後のプロセスがセグメントから切り離されると、この表示は消えます。
C
最初に付加されたプロセスが実行されるときに、関連する共用メモリー・セグメントがクリアされます。
-
対応する特殊フラグが設定されていません。

次の 9 文字は、それぞれが 3 ビットずつの 3 セットとして解釈されます。 最初のセットは、所有者の許可を参照します。 2 番目のセットは、機能エントリーのユーザー・グループに属する他のユーザーの許可を参照します。 最後のセットは、その他のすべてのユーザーの許可を参照します。 各セット内で、最初の文字は読み取りの許可を、2 番目の文字は機能エントリーの書き出しまたは変更の許可を示します。現在は、最後の文字は使用されません。

許可は次のように示されます。

r
読み取り許可が与えられている場合
w
書き込み許可が与えられている場合
a
変更許可が与えられている場合
-
示された許可は 与えられていません
OWNER (all) 機能エントリーのオーナーのログイン名
GROUP (all) 機能エントリーを所有するグループの名前。
CREATOR (ac) 機能エントリーの作成者のログイン名。
CGROUP (ac) 機能エントリーの作成者のグループ名。

注: OWNERGROUPCREATOR、 および CGROUP に対しては、 ログイン名の代わりにユーザー ID とグループ ID が表示されます。

CBYTES (ao) 関連するメッセージ・キューで現在未処理になっているメッセージのバイト数。
QNUM (ao) 関連するメッセージ・キューで現在未処理になっているメッセージの数。
QBYTES (ab) 関連するメッセージ・キューで未処理になっているメッセージに使用できる最大バイト数
LSPID (ap) 関連するキューにメッセージを送った最後のプロセスの ID。 最後のメッセージがキューを保持するノード以外のノードのプロセスから送られた場合、LSPID は送信元プロセスの PID ではなく、 メッセージを実際にキューに入れたカーネル・プロセスの PID です。
LRPID (ap) 関連するキューからメッセージを受け取った最後のプロセスの ID。 最後のメッセージをキューを保持するノード以外のノードのプロセスから受け取った場合、LRPID は受信先プロセスの PID ではなく、 実際にキューにあるメッセージを受け取ったカーネル・プロセスの PID です。
STIME (at) 最後のメッセージが、関連するキューに送られたときの時刻。 リモート・キューの場合、これはサーバーの時刻です。ローカル・クロックとサーバー・クロック間の時間帯の違いに対する補正は実行されません。
RTIME (at) 最後のメッセージを関連するキューから受け取ったときの時刻。 リモート・キューの場合、これはサーバーの時刻です。ローカル・クロックとサーバー・クロック間の時間帯の違いに対する補正は実行されません。
CTIME (at) 関連するエントリーが作成または変更された時刻。 リモート・キューの場合、これはサーバーの時刻です。ローカル・クロックとサーバー・クロック間の時間帯の違いに対する補正は実行されません。
NATTCH (ao) 関連する共用メモリー・セグメントに接続されたプロセスの数。
SEGSZ (ab) 関連する共用メモリー・セグメントのサイズ (バイト単位)。
CPID (ap) 共用メモリー・エントリーの作成者のプロセス ID。
LPID (ap) 共用メモリー・セグメントを接続するか切り離すための最後のプロセスのプロセス ID。
ATIME (at) 関連する共用メモリー・セグメントに対して最後の接続が完了した時刻。
DTIME (at) 関連する共用メモリー・セグメントに対して最後の切り離しが完了した時刻。
NSEMS (ab) セマフォー・エントリーに関連するセット内のセマフォーの数。
OTIME (at) セマフォー・エントリーに関連するセットに対し最後のセマフォー操作が完了した時刻。
SID (S) 共用メモリー・セグメント ID。 SID は、svmon -S コマンド の入力として使用されます。

このコマンドは、マルチバイト文字セットをサポートします。

フラグ

項目 説明
-a -b-c-o-p-t の各フラグを使用します。
-b メッセージ・キューの場合のキュー上のメッセージの最大バイト数、共用メモリーのセグメントのサイズ、各セマフォー・セット内のセマフォーの数を書き出します。
-c 機能を作成したユーザーのログイン名およびグループ名を書き出します。
-CCoreFile /dev/mem ファイルの代わりに CoreFile パラメーターで指定されたファイルを使用します。 CoreFile パラメーターは、Ctrl- (左) Alt-Pad1 キー・シーケンスによって作成されたメモリー・イメージ・ファイルです。
-1 このフラグを -S フラグと共に使用すると、アンラップされた SID のリストを書き込みます。
-m アクティブな共用メモリー・セグメントに関する情報を書き出します。
-NKernel 指定された Kernel を使用します (デフォルトは /usr/lib/boot/unix ファイル)。
-o 次の使用状況情報を書き出します。
  • キュー上のメッセージの数
  • メッセージ・キューのキュー上のメッセージの総バイト数
  • 共用メモリー・セグメントに接続されたプロセスの数
-p 次のプロセス番号情報を書き出します。
  • メッセージ・キュー上のメッセージを受け取った最後のプロセスのプロセス番号
  • メッセージ・キューにメッセージを送信した最後のプロセスのプロセス番号
  • 作成プロセスのプロセス番号
  • 共用メモリー・セグメントに対する接続または切り離しを行う最後のプロセスのプロセス番号
-P 共用メモリー ID に関連した SID (セグメント ID) のリストを、 セグメントにピンされたバイト数およびセグメントがラージ・ページ使用可能か否かの指示 に従って書き出します。 セグメントがラージ・ページ使用可能である場合には 'Y' と表示され、そうでない場合には '-' と 表示されます。
-q アクティブなメッセージ・キューに関する情報を書き出します。
-r リアルタイム・プロセス間通信オブジェクトに関する情報を書き出します。
-s アクティブなセマフォー・セットに関する情報を書き出します。
-S 共用メモリー ID に接続されている SID のリストを書き出します。
-t 次の時刻情報を書き出します。
  • すべての機能についてのアクセス権を変更した最後の制御操作の時刻
  • メッセージ・キューに対する最後の msgsndmsgrcv の時刻
  • 共用メモリーに対する最後の shmatshmdt の時刻
  • セマフォー・セットに対する最後の semop の時刻
-T -t フラグの出力を日付を付けて書き出します。
-X 最初の 8 文字に切り捨てることをせずに、それぞれのユーザー名、所有者のグループ名、 作成者、所有者グループ、作成者グループの使用可能なすべての文字を印刷します。
-@ [ WparName ] workload partitionsに関するプロセス間通信機能の状況を報告します。 WparName を指定した場合は、その特定のworkload partitionに関するプロセス間通信機能の状況が表示されます。 WparName を指定しない場合は、活動状態のすべてのworkload partitionsに関するプロセス間通信機能の状況が表示されます。 該当のオブジェクトに関連付けられているworkload partitionの名前が表示されます。

そのオペレーティング・システム環境からホストされているワークロード・パーティションの IPC 情報を除き、そのオペレーティング・システム環境のみの IPC オブジェクト情報を表示するには、WparName として Global を指定します。

注:
  1. -C フラグまたは -N フラグのいずれかを指定した場合、実効 UID/GID と実 UID/GID は ipcs コマンドを呼び出したユーザーの実 UID/GID に設定されます。
  2. ipcs の実行中に値が変更される可能性もあります。ipcs が与える情報の精度が保証されるのは、それが検索された時点のみです。

セキュリティー

RBAC ユーザーおよび Trusted AIX ユーザーへの注意: このコマンドは特権命令を実行できます。 特権命令を実行できるのは特権ユーザーのみです。 権限および特権についての詳細情報は、「セキュリティー」の『特権コマンド・データベース』を参照してください。 このコマンドに関連した特権および権限のリストについては、lssecattr コマンドまたは getcmdattr サブコマンドの項を参照してください。

フラグを指定しないで ipcs を入力した場合の出力例を次に示します。

IPC status from /dev/mem as of Mon Aug 14 15:03:46 1989
T    ID         KEY        MODE       OWNER     GROUP
Message Queues:
q       0    0x00010381 -Rrw-rw-rw-   root      system
q   65537    0x00010307 -Rrw-rw-rw-   root      system
q   65538    0x00010311 -Rrw-rw-rw-   root      system
q   65539    0x0001032f -Rrw-rw-rw-   root      system
q   65540    0x0001031b -Rrw-rw-rw-   root      system
q   65541    0x00010339--rw-rw-rw-    root      system
q       6    0x0002fe03 -Rrw-rw-rw-   root      system
Shared Memory:
m   65537    0x00000000 DCrw-------   root      system
m  720898    0x00010300 -Crw-rw-rw-   root      system
m   65539    0x00000000 DCrw-------   root      system
Semaphores:
s  131072    0x4d02086a --ra-ra----   root      system
s   65537    0x00000000 --ra-------   root      system
s 1310722    0x000133d0 --ra-------   7003      30720

ファイル

項目 説明
/usr/lib/boot/unix システム・カーネル・イメージを指定します。
/dev/mem メモリーを指定します。
/etc/passwd ユーザー名を指定します。
/etc/group グループ名を指定します。
/usr/include/sys/ipc.h ヘッダー・ファイルが入っています。