perintah linux untuk memeriksa antrian pesan POSIX


13

Kami dapat memeriksa detail antrian pesan sistem V dengan bantuan ipcsperintah. Apakah ada perintah untuk memeriksa antrian pesan POSIX di Linux?

Jawaban:


2

Tidak ada perintah yang saya tahu tetapi ada panggilan fungsi libc yang bisa mendapatkan statistik:

man 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 */
       };

9

Jika Anda cukup beruntung menggunakan HP-UX , perintah pipcs(PDF) melakukan POSIX yang setara dengan perintah SysV IPC ipcs. Sayangnya, tidak pernah muncul untuk OS lain. Paket util-linux saat ini (Maret 2013) yang ipcshampir tidak menyebutkan mqueues POSIX.

Jika sudah mqueueterpasang /dev/mqueue, yang didukung hanyalah membaca antrian sebagai file:

user@linux $ cat /dev/mqueue/myQ
QSIZE:0          NOTIFY:0     SIGNO:0     NOTIFY_PID:0 

The QSIZEsayangnya ukuran dalam byte, bukan pesan; di Linux belum ada bidang penghitungan pesan - tidak seperti FreeBSD yang memberikan CURMSGnilai:

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

Jadi jawabannya harus "mount FS mqueue dan gunakan cat", tapi itu tidak :(

(Memasang mqueue FS bukanlah prasyarat untuk menggunakan MQ API, itu hanya memungkinkan Anda melakukan beberapa hal "semuanya adalah file".)

Jika Anda benar-benar perlu memantau antrian, buku The Linux Programming Interface memiliki kode sumber C untuk berbagai alat CLI untuk membuat, memeriksa dan menggunakan antrian pesan. Untungnya bab 52 buku yang membahas topik ini saat ini tersedia gratis untuk diunduh. Lihat pmsg_getattr.c.

Kode referensi kanonik dari Stephen Unix Network Programming (Vol 2) 2nd Ed. (1999) tersedia di sini , ia menyediakan di antara hal-hal lain mqgetattryang akan melakukan pekerjaan juga (meskipun Anda mungkin perlu memijat beberapa baris di tingkat atas config.h, #defineuntuk berbagai uintjenis konflik dengan header sistem Unix kontemporer).

Ada juga modul Ruby , Perl dan TCL untuk ini, yang Ruby dilengkapi dengan posix-mq-rbalat CLI.


Saya menggunakan sistem ubuntu ..
sujin

9

$ ipcs -q akan memberikan statistik antrian pesan dari baris perintah.

$ ipcs -m akan memberikan statistik memori bersama dari baris perintah.

$ ipcs akan memberikan semua statistik mekanisme IPC.


8
ipcsbukan untuk antrian pesan
POSIX1

2
ipcsdigunakan untuk antrian pesan System V dan bukan untuk antrian pesan POSIX
Yerke
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.