Команда linux для перевірки черги повідомлень POSIX


13

Ми можемо перевірити деталі черги повідомлень системи V за допомогою ipcsкоманди. Чи є якась команда для перевірки черги повідомлень POSIX в Linux?

Відповіді:


2

Немає команди, про яку я знаю, але існує виклик функції libc, який може отримати статистику:

людина 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

Якщо вам пощастило використовувати HP-UX , команда pipcs(PDF) виконує POSIX, еквівалентний ipcsкоманді SysV IPC . На жаль, він ніколи не з'являвся для інших ОС. Поточний (березень 2013 р.) Пакет util-linux, який забезпечує ipcsледь згадування POSque-файлів.

Якщо ви mqueueпідключились /dev/mqueue, те, що підтримується, - це просто читання черги як файл:

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

На QSIZEжаль, розмір у байтах, а не повідомленнях; в Linux немає (поки що) поля для підрахунку повідомлень - на відміну від FreeBSD, який забезпечує CURMSGзначення:

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

Отже, відповідь повинна бути "встановити mqueue FS і використовувати cat", але це не так :(

(Монтаж файлу Fque mqueue не є обов'язковою умовою для використання API MQ, він просто дозволяє робити деякі матеріали "все є файлом".)

Якщо вам дійсно потрібно відстежувати черги, книга «Інтерфейс програмування Linux» має вихідний код C для різних інструментів CLI для створення, перевірки та використання черг повідомлень. На щастя, розділ 52 книги, що висвітлює цю тему, наразі доступний для завантаження. Див pmsg_getattr.c.

Канонічний контрольний код із мережевого програмування Стівена Unix (том 2), 2-е вид. (1999) доступний тут , він пропонує, серед інших речей, mqgetattrякі теж зроблять цю роботу (хоча, ймовірно, вам доведеться промальовувати пару ліній на верхньому рівні config.h, #defineдля різних uintтипів конфліктують із сучасними заголовками системи Unix).

Для цього також є модулі Ruby , Perl і TCL , Ruby поставляється з posix-mq-rbінструментом CLI.


Я використовую систему ubuntu ..
sujin

9

$ ipcs -q надасть статистику черги повідомлень з командного рядка.

$ ipcs -m надасть статистику спільної пам'яті з командного рядка.

$ ipcs надасть усі статистичні дані механізму ipc.


8
ipcsне для черг на повідомлення POSIX1
whoan

2
ipcsвикористовується для черг повідомлень System V, а не для черг повідомлень POSIX
Yerke
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.