คำสั่ง 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 น่าเศร้าที่มันไม่เคยปรากฏในระบบปฏิบัติการอื่น แพคเกจutil-linuxปัจจุบัน (มีนาคม 2013) ซึ่งให้การipcsกล่าวถึงแทบ POSIX

หากคุณได้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" แต่ไม่ใช่ :(

(การติดตั้ง FS mqueue ไม่ใช่ข้อกำหนดเบื้องต้นสำหรับการใช้ MQ API เพียงให้คุณทำบางสิ่ง "ทุกอย่างเป็นไฟล์")

หากคุณต้องการตรวจสอบคิวจริง ๆ หนังสือThe Linux Programming Interfaceมีซอร์สโค้ด C สำหรับเครื่องมือ CLI ต่างๆเพื่อสร้างตรวจสอบและใช้คิวข้อความ อย่างมีความสุขตอนที่ 52 ของหนังสือที่ครอบคลุมหัวข้อนี้สามารถดาวน์โหลดได้ฟรี pmsg_getattr.cดู

รหัสอ้างอิงมาตรฐานจากUnix Network Programming (Vol 2) 2nd Ed (1999) มีให้ที่นี่มันให้สิ่งอื่นmqgetattrที่จะทำงานเช่นกัน (แม้ว่าคุณอาจจะต้องนวดสองบรรทัดในระดับบนสุดconfig.hแต่#defineสำหรับuintประเภทต่าง ๆขัดแย้งกับส่วนหัวของระบบยูนิกซ์ร่วมสมัย)

นอกจากนี้ยังมีโมดูลRuby , PerlและTCLสำหรับสิ่งนี้หนึ่งใน Ruby มาพร้อมกับposix-mq-rbเครื่องมือ CLI


ฉันใช้ระบบอูบุนตู ..
sujin

9

$ ipcs -q จะให้สถิติคิวข้อความจากบรรทัดคำสั่ง

$ ipcs -m จะให้สถิติหน่วยความจำที่ใช้ร่วมกันจากบรรทัดคำสั่ง

$ ipcs จะให้สถิติกลไก ipc ทั้งหมด


8
ipcsไม่ใช่สำหรับคิวข้อความ
POSIX1

2
ipcsใช้สำหรับคิวข้อความของ System V ไม่ใช่คิวคิวข้อความ POSIX
Yerke
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.