Відповіді:
Немає команди, про яку я знаю, але існує виклик функції 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 */
};
Якщо вам пощастило використовувати 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.
$ ipcs -q
надасть статистику черги повідомлень з командного рядка.
$ ipcs -m
надасть статистику спільної пам'яті з командного рядка.
$ ipcs
надасть усі статистичні дані механізму ipc.
ipcs
не для черг на повідомлення POSIX1
ipcs
використовується для черг повідомлень System V, а не для черг повідомлень POSIX