GNU/Linux >> Tutoriels Linux >  >> Linux

commande linux pour vérifier la file d'attente des messages POSIX

Si vous avez la chance d'utiliser HP-UX , la commande pipcs (PDF) (désolé lien cassé, pas d'archive actuelle , consultez cette page de manuel sur unix.com à la place) exécute l'équivalent POSIX du SysV IPC ipcs commande. Malheureusement, il n'est jamais apparu pour d'autres systèmes d'exploitation. Le paquet util-linux actuel (janvier 2021) qui fournit ipcs mentionne à peine les files d'attente POSIX.

Si vous avez mqueue monté sur /dev/mqueue , qu'est-ce que est pris en charge lit les métadonnées d'une file d'attente existante sous forme de fichier :

[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 

Le QSIZE n'est malheureusement que la taille en octets, pas en messages ; sous Linux, il n'y a (pour l'instant, noyau 5.4) aucun champ de comptage de messages - contrairement à FreeBSD qui fournit un CURMSG valeur :

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

Donc la réponse devrait être "monter le mqueue FS et utiliser cat ", mais ce n'est pas :(

(Le montage de mqueue FS n'est pas une condition préalable à l'utilisation de l'API MQ, il vous permet simplement de faire des choses "tout est un fichier".)

Il y a une bonne couverture des files d'attente de messages dans le livre L'interface de programmation Linux , y compris le code source C pour divers outils CLI pour créer, inspecter et utiliser des files d'attente de messages. Heureusement, le chapitre 52 du livre qui couvre ce sujet est actuellement disponible en téléchargement gratuit. Voir pmsg_getattr.c .

Le code de référence canonique de Stephen's Unix Network Programming (Vol 2) 2nd Ed. (1999) est disponible ici, il fournit entre autres mqgetattr qui fera le travail aussi (bien que vous aurez probablement besoin de masser quelques lignes dans le niveau supérieur config.h , le #define 's pour divers uint les types sont en conflit avec les en-têtes du système Unix contemporain).

Il existe également des modules Ruby, Perl et TCL pour cela, celui de Ruby est livré avec un posix-mq-rb Outil CLI.


$ ipcs -q fournira des statistiques sur la file d'attente des messages à partir de la ligne de commande.

$ ipcs -m fournira des statistiques sur la mémoire partagée à partir de la ligne de commande.

$ ipcs fournira toutes les statistiques du mécanisme ipc.


Il n'y a pas de commande que je connaisse mais il existe un appel de fonction libc qui peut obtenir les statistiques :

homme 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. Commande Linux mv

  2. Linux du command

  3. Commande IP Linux

  4. Commande cd Linux

  5. logger Exemples de commandes sous Linux

Comment vérifier l'historique des commandes Linux par dates

3 façons de vérifier la version du noyau Linux en ligne de commande

Comment vérifier la vitesse d'Internet sous Linux

Comment utiliser la commande wall sous Linux

Comment vérifier les ports ouverts sous Linux ?

Commande Linux df pour vérifier l'espace disque