POSIX mesaj kuyruğunu kontrol etmek için linux komutu


13

ipcsKomut yardımı ile sistem V mesaj kuyruğunun detaylarını kontrol edebiliriz . Linux'ta POSIX mesaj kuyruğunu kontrol etmek için herhangi bir komut var mı?

Yanıtlar:


2

Bildiğim bir komut yok ama istatistikleri alabilen bir libc fonksiyon çağrısı var:

man 3 Instagram Hesabındaki Resim ve Videoları 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

HP-UX'i kullanmak için yeterince şanslıysanız , komut pipcs(PDF) SysV IPC ipcskomutuna eşdeğer POSIX gerçekleştirir . Ne yazık ki, diğer işletim sistemleri için hiç ortaya çıkmadı. Şu anki (Mart 2013) utix -linux paketi ipcs, POSIX örneklerinden zar zor bahsediyor.

Eğer varsa mqueueüzerine monte /dev/mqueuene basit bir dosya olarak kuyruğu okuyor desteklenir:

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

Ne QSIZEyazık ki mesajlar değil, bayt cinsinden boyuttur; Linux'ta (henüz) mesaj sayısı alanı yoktur - FreeBSD'nin aksine bir CURMSGdeğer sağlar:

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

Bu yüzden cevap "FS mqueue'unu monte edin ve kullanın " olmalıcat , ama değil :(

(FS mqueue'yu monte etmek, MQ API'yi kullanmak için bir önkoşul değildir, sadece "her şey bir dosyadır" şeyler yapmanızı sağlar.)

Gerçekten kuyrukları izlemeniz gerekiyorsa, Linux Programlama Arabirimi'nde çeşitli CLI araçları için ileti kuyrukları oluşturmak, denetlemek ve kullanmak için C kaynak kodu bulunur. Bu konuyu kapsayan kitabın 52. bölümü şu anda indirilebilir. Bkz pmsg_getattr.c.

Stephen'ın Unix Network Programming (Cilt 2) 2nd Ed. (1999) kullanılabilir burada diğer şeyler arasında sağlamaktadır, mqgetattr(muhtemelen üst düzeyde birkaç satır masaj gerekir gerçi çok iş yapacak config.h, #define'çeşitli için s uintçağdaş Unix sistem başlıklarıyla tipleri çatışma).

Bunun için Ruby , Perl ve TCL modülleri de var, Ruby bir posix-mq-rbCLI aracıyla geliyor .



9

$ ipcs -q komut satırından ileti kuyruğu istatistikleri sağlar.

$ ipcs -m komut satırından paylaşılan bellek istatistikleri sağlar.

$ ipcs tüm ipc mekanizması istatistiklerini sağlayacaktır.


8
ipcsPOSIX1 mesaj kuyrukları için değil
whoan

2
ipcsSistem V ileti kuyrukları için kullanılır, POSIX ileti kuyrukları için kullanılmaz
Yerke
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.