GNU/Linux >> Znalost Linux >  >> Linux

linuxový příkaz ke kontrole fronty zpráv POSIX

Pokud máte to štěstí, že používáte HP-UX , příkaz pipcs (PDF) (omlouváme se, že odkaz nefunguje, žádný aktuální archiv , podívejte se místo toho na tuto manuálovou stránku na unix.com) provádí ekvivalent POSIX k SysV IPC ipcs příkaz. Bohužel se nikdy neobjevil pro jiné OS. Aktuální (leden 2021) balíček util-linux, který poskytuje ipcs stěží zmiňuje POSIX mqueues.

Pokud máte mqueue namontovaný na /dev/mqueue , co je podporováno je čtení metadat pro existující frontu jako soubor:

[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 

QSIZE je bohužel pouze velikost v bajtech, nikoli zprávy; na Linuxu není (zatím, jádro 5.4) žádné pole počtu zpráv – na rozdíl od FreeBSD který poskytuje CURMSG hodnota:

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

Takže odpověď měla by být "připojte mqueue FS a použijte cat ", ale není :(

(Připojení mqueue FS není nezbytným předpokladem pro použití MQ API, jen vám umožňuje dělat nějaké věci „vše je soubor“.)

V knize The Linux Programming Interface je dobré pokrytí front zpráv , včetně zdrojového kódu C pro různé nástroje CLI pro vytváření, kontrolu a používání front zpráv. Naštěstí je v současné době zdarma ke stažení kapitola 52 knihy, která pokrývá toto téma. Viz pmsg_getattr.c .

Kanonický referenční kód od Stephena Unix Network Programming (Vol 2) 2nd Ed. (1999) je k dispozici zde, poskytuje mimo jiné mqgetattr což také udělá práci (ačkoli budete pravděpodobně muset masírovat několik řádků v nejvyšší úrovni config.h , #define 's pro různé uint typy jsou v konfliktu se současnými hlavičkami unixového systému).

K tomu existují také moduly Ruby, Perl a TCL, ten Ruby je dodáván s posix-mq-rb nástroj CLI.


$ ipcs -q poskytne statistiky fronty zpráv z příkazového řádku.

$ ipcs -m poskytne statistiky sdílené paměti z příkazového řádku.

$ ipcs poskytne všechny statistiky mechanismu ipc.


Neznám žádný příkaz, ale existuje volání funkce libc, které může získat statistiky:

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

Linux
  1. Linuxový příkaz mv

  2. Linux du command

  3. Linuxový ip příkaz

  1. Linux cd příkaz

  2. Zkontrolujte použití portu v Linuxu

  3. Příklady příkazů logger v Linuxu

  1. Příkaz Df v Linuxu (zkontrolujte místo na disku)

  2. W Command v Linuxu

  3. Jak zkontrolovat, zda je systém Linux 32bitový nebo 64bitový