POSIXメッセージキューを確認するLinuxコマンド

POSIXメッセージキューを確認するLinuxコマンド

コマンドを使用すると、System Vメッセージキューの詳細を表示できますipcs。 LinuxでPOSIXメッセージキューを表示するコマンドはありますか?

ベストアンサー1

幸運になるとHP-UX、注文するpipcs(PDF)申し訳ありません。リンクが壊れているため、現在アーカイブはありません。、望むよりこれunix.comのマニュアルページ)は、SysV IPCコマンドと同等のPOSIXを実装していますipcs。残念ながら、他のオペレーティングシステムには適用されませんでした。現在(2021年1月)ユーティリティLinux提供されたパッケージにはipcsPOSIX mqueueはほとんど記載されていません。

mqueueインストールしたら/dev/mqueueどうですか?はい既存のキューのメタデータをファイルに読み込むサポート:

user@linux $ sudo mount -t mqueue mqueue /dev/mqueue
user@linux $ mq_create -c /myQ
user@linux $ cat /dev/mqueue/myQ
QSIZE:0          NOTIFY:0     SIGNO:0     NOTIFY_PID:0 

残念ながら、これはQSIZEメッセージサイズではなくバイト単位のサイズにすぎません。 Linux(現在のカーネル5.4)にはメッセージ数フィールドはありません。FreeBSDこれは次のCURMSG値を提供します。

user@freebsd $ cat /mnt/mqueue/myQ
QSIZE:0          MAXMSG:32         CURMSG:0          MSGSIZE:1024   

だから答えはしなければならない「mqueue FSのマウントと使用cat」ですが、そうではありません。 :(

(mqueue FSをインストールすることはMQ APIを使用するための前提条件ではなく、単に「すべてがファイルです」というタスクを実行できるようにします。)

この本にはメッセージキューの良い紹介があります。Linuxプログラミングインターフェースには、メッセージキューの作成、検査、および使用のためのさまざまなCLIツールのCソースコードが含まれています。幸いなことに、このトピックを扱う本の52枚は現在無料でダウンロードできます。望むよりpmsg_getattr.c

Stephenの標準参照コードUnixネットワークプログラミング(2巻)第2版。(1999) 利用可能ここ他の機能も提供します(さまざまな種類のヘッダーが最新のUnixシステムと競合するため、最上位レベルで数行を変更する必要がmqgetattrあるかもしれません)。config.h#defineuint

しかもルビー真珠そしてTCLRubyには、この目的のためのモジュールが付属しています。posix-mq-rbCLIツール

おすすめ記事