команда Linux для проверки очереди сообщений POSIX

Сделайте бывший бесполезный 'DE'.. просто запишите DE, CA, Великобритания, как это, без кавычек

12
31.03.2013, 18:33
3 ответа

Нет никакой команды, о которой я знаю, но там существует 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 */
       };
2
27.01.2020, 19:55

Если Вам повезло использовать HP-UX, команду pipcs (PDF) выполняет POSIX, эквивалентный SysV IPC ipcs команда. К сожалению, это никогда не появлялось для другой ОС. Ток (март 2013) пакет util-linux, который обеспечивает ipcs едва упоминания POSIX mqueues.

Если Вы имеете mqueue смонтированный на /dev/mqueue, то, что поддерживается, просто читает очередь как файл:

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

QSIZE к сожалению, размер в байтах, не сообщения; на Linux нет (пока еще) никакого поля количества сообщения - в отличие от FreeBSD, который обеспечивает a CURMSG значение:

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

Таким образом, ответ должен быть, "монтируют mqueue FS и использование cat", но это не :(

(Монтирование mqueue FS не является предпосылкой для использования API MQ, это просто позволяет Вам сделать некоторых, "все - файл" материал.)

Если действительно необходимо контролировать очереди, книга, Интерфейс программирования Linux имеет исходный код C для различных инструментов CLI, чтобы создать, осмотреть и использовать очереди сообщений. Счастливо глава 52 книги, которая затрагивает эту тему, в настоящее время доступна бесплатно для загрузки. Посмотрите pmsg_getattr.c.

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

Существует также Ruby, Perl и модули TCL для этого, Ruby, каждый приезжает с a posix-mq-rb Инструмент CLI.

8
27.01.2020, 19:55
  • 1
    я использующий систему человечности.. –  sujin 15.04.2013, 21:18

$ ipcs -q предоставит статистику очереди сообщений из командной строки.

$ ipcs -m предоставит статистику разделяемой памяти из командной строки.

$ ipcs предоставит всю статистику механизма ipc.

8
27.01.2020, 19:55

Теги

Похожие вопросы