GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux-Befehl zum Überprüfen der POSIX-Nachrichtenwarteschlange

Wenn Sie das Glück haben, HP-UX zu verwenden , der Befehl pipcs (PDF) (leider Link defekt, kein aktuelles Archiv , siehe stattdessen diese Manpage auf unix.com) führt das POSIX-Äquivalent zum SysV IPC ipcs aus Befehl. Leider ist es nie für andere Betriebssysteme erschienen. Das aktuelle (Januar 2021) util-linux-Paket, das ipcs bereitstellt erwähnt kaum POSIX-Mqueues.

Wenn Sie mqueue haben montiert auf /dev/mqueue , was ist unterstützt wird das Lesen von Metadaten für eine vorhandene Warteschlange als Datei:

[email protected] $ sudo mount -t mqueue mqueue /dev/mqueue
[email protected] $ mq_create -c /myQ
[email protected] $ cat /dev/mqueue/myQ
QSIZE:0          NOTIFY:0     SIGNO:0     NOTIFY_PID:0 

Die QSIZE ist leider nur die Größe in Bytes, nicht Nachrichten; unter Linux gibt es (noch, Kernel 5.4) kein Message-Count-Feld – im Gegensatz zu FreeBSD was einen CURMSG liefert Wert:

[email protected] $ cat /mnt/mqueue/myQ
QSIZE:0          MAXMSG:32         CURMSG:0          MSGSIZE:1024   

Also die Antwort sollte sei "mount the mqueue FS and use cat ", aber es ist nicht :(

(Das Mounten des mqueue FS ist keine Voraussetzung für die Verwendung der MQ-API, es lässt Sie nur ein paar "Alles-ist-eine-Datei"-Sachen machen.)

Das Buch The Linux Programming Interface enthält eine gute Behandlung von Nachrichtenwarteschlangen , einschließlich C-Quellcode für verschiedene CLI-Tools zum Erstellen, Untersuchen und Verwenden von Nachrichtenwarteschlangen. Glücklicherweise ist Kapitel 52 des Buches, das dieses Thema behandelt, derzeit kostenlos zum Download verfügbar. Siehe pmsg_getattr.c .

Der kanonische Referenzcode aus Stephens Unix Network Programming (Vol 2) 2nd Ed. (1999) ist hier verfügbar, es liefert unter anderem mqgetattr was auch funktioniert (obwohl Sie wahrscheinlich ein paar Zeilen in der obersten Ebene config.h massieren müssen , die #define 's für verschiedene uint -Typen stehen in Konflikt mit zeitgenössischen Unix-System-Headern).

Dafür gibt es auch Ruby-, Perl- und TCL-Module, das Ruby-Modul kommt mit einem posix-mq-rb CLI-Tool.


$ ipcs -q stellt Nachrichtenwarteschlangenstatistiken von der Befehlszeile bereit.

$ ipcs -m liefert Shared-Memory-Statistiken über die Befehlszeile.

$ ipcs liefert alle IPC-Mechanismen-Statistiken.


Mir ist kein Befehl bekannt, aber es gibt einen libc-Funktionsaufruf, der die Statistiken abrufen kann:

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

Linux
  1. Linux-mv-Befehl

  2. Linux-Du-Befehl

  3. Linux-IP-Befehl

  4. Linux-cd-Befehl

  5. Überprüfen Sie die Portverwendung in Linux

So überprüfen Sie den Verlauf der Linux-Befehle nach Datum

3 Möglichkeiten zum Überprüfen der Linux-Kernel-Version in der Befehlszeile

So überprüfen Sie die Internetgeschwindigkeit unter Linux

So verwenden Sie den Wandbefehl unter Linux

Wie überprüfe ich offene Ports in Linux?

Linux-df-Befehl zum Überprüfen des Speicherplatzes