回答:
私が知っているコマンドはありませんが、統計を取得できるlibc関数呼び出しが存在します。
男3 mq_getattr
mq_getattr() returns an mq_attr structure in the buffer pointed by
attr. This structure is defined as:
struct mq_attr {
long mq_flags; /* Flags: 0 or O_NONBLOCK */
long mq_maxmsg; /* Max. # of messages on queue */
long mq_msgsize; /* Max. message size (bytes) */
long mq_curmsgs; /* # of messages currently in queue */
};
HP-UXを使用できる運が良ければ、このコマンドpipcs
(PDF)はSysV IPC ipcs
コマンドと同等のPOSIXを実行します。悲しいことに、それは他のOSのために決して現れませんでした。現在(2013年3月)のutil-linuxパッケージipcs
は、POSIX mqueueについてほとんど言及していません。
にmqueue
マウントした場合/dev/mqueue
、サポートされるのは、単にキューをファイルとして読み取ることです。
user@linux $ cat /dev/mqueue/myQ
QSIZE:0 NOTIFY:0 SIGNO:0 NOTIFY_PID:0
QSIZE
残念ながら、これはメッセージではなくバイト単位のサイズです。Linuxでは(まだ)メッセージ数フィールドはありません- 値を提供するFreeBSDとは異なりCURMSG
ます:
user@freebsd $ cat /mnt/mqueue/myQ
QSIZE:0 MAXMSG:32 CURMSG:0 MSGSIZE:1024
したがって、答えは「mqueue FSをマウントして使用するcat
」であるはずですが、それは:(
(mqueue FSのマウントは、MQ APIを使用するための前提条件ではなく、「すべてがファイルである」ことを可能にするだけです。)
本当にキューを監視する必要がある場合は、 『The Linux Programming Interface』に、メッセージキューを作成、検査、使用するためのさまざまなCLIツール用のCソースコードが含まれています。幸いにも、このトピックをカバーする本の第52章は、現在無料でダウンロードできます。を参照してくださいpmsg_getattr.c
。
スティーブンのUnixネットワークプログラミング(Vol 2)2nd Edの正規の参照コード。(1999)が利用可能である、ここで、それはとりわけ提供し、mqgetattr
あまりにも仕事をする(あなたはおそらくトップレベルに数行をマッサージする必要がありますけれどもconfig.h
、#define
様々なためのuint
現代的なUnixシステムヘッダを持つタイプの競合)。
Ruby、Perl、およびTCLモジュールもあり、Rubyにはposix-mq-rb
CLIツールが付属しています。