GNU/Linux >> Tutoriales Linux >  >> Linux

Comando de Linux para verificar la cola de mensajes POSIX

Si tiene la suerte de utilizar HP-UX , el comando pipcs (PDF) (lo siento enlace roto, no hay archivo actual , vea esta página del manual en unix.com en su lugar) realiza el equivalente POSIX al SysV IPC ipcs dominio. Lamentablemente, nunca ha aparecido para otros sistemas operativos. El paquete util-linux actual (enero de 2021) que proporciona ipcs apenas menciona mqueues POSIX.

Si tienes mqueue montado en /dev/mqueue , qué es admitido es la lectura de metadatos para una cola existente como un archivo:

[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 

Los QSIZE lamentablemente es solo el tamaño en bytes, no en mensajes; en Linux no hay (hasta ahora, kernel 5.4) ningún campo de recuento de mensajes, a diferencia de FreeBSD que proporciona un CURMSG valor:

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

Así que la respuesta debería ser "montar mqueue FS y usar cat ", pero no lo es :(

(Montar mqueue FS no es un requisito previo para usar la API de MQ, solo le permite hacer algunas cosas de "todo es un archivo").

Hay una buena cobertura de las colas de mensajes en el libro La interfaz de programación de Linux , incluido el código fuente C para varias herramientas CLI para crear, inspeccionar y usar colas de mensajes. Afortunadamente, el capítulo 52 del libro que cubre este tema está actualmente disponible para descargar de forma gratuita. Ver pmsg_getattr.c .

El código de referencia canónico de Stephen's Programación de red Unix (Vol 2) 2nd Ed. (1999) está disponible aquí, proporciona, entre otras cosas, mqgetattr que también hará el trabajo (aunque es probable que necesite masajear un par de líneas en el nivel superior config.h , el #define para varios uint los tipos entran en conflicto con los encabezados del sistema Unix contemporáneo).

También hay módulos Ruby, Perl y TCL para esto, el de Ruby viene con un posix-mq-rb Herramienta CLI.


$ ipcs -q proporcionará estadísticas de la cola de mensajes desde la línea de comandos.

$ ipcs -m proporcionará estadísticas de memoria compartida desde la línea de comandos.

$ ipcs proporcionará todas las estadísticas del mecanismo ipc.


No conozco ningún comando, pero existe una llamada a la función libc que puede obtener las estadísticas:

hombre 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. Cómo comprobar si un sistema Linux es de 32 o 64 bits

  2. comando linux mv

  3. Linux du comando

  4. Comando IP de Linux

  5. Ejemplos de comandos logger en Linux

Cómo verificar el historial de comandos de Linux por fechas

3 formas de comprobar la versión del kernel de Linux en la línea de comandos

Cómo comprobar la velocidad de Internet en Linux

Cómo usar el comando de pared en Linux

¿Cómo comprobar los puertos abiertos en Linux?

Comando Linux df para verificar el espacio en disco