linux कमांड POSIX संदेश कतार की जाँच करने के लिए


13

हम ipcsकमांड की मदद से सिस्टम वी संदेश कतार के विवरण की जांच कर सकते हैं । क्या लिनक्स में POSIX संदेश कतार की जांच करने के लिए कोई कमांड है?

जवाबों:


2

ऐसी कोई भी आज्ञा नहीं है जिसके बारे में मुझे पता हो, लेकिन इसमें एक लिबास फंक्शन कॉल मौजूद है जो आंकड़े प्राप्त कर सकती है:

आदमी 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) SOSV IPC ipcsकमांड के बराबर POSIX करता है । अफसोस की बात है कि यह अन्य ओएस के लिए कभी नहीं दिखाई दिया। वर्तमान (मार्च 2013) उपयोग -लाइनक्स पैकेज जो ipcsबमुश्किल उल्लेख करता है POSIX mqueues।

यदि आप पर mqueueचढ़े हैं /dev/mqueue, तो जो समर्थित है वह केवल एक फ़ाइल के रूप में कतार पढ़ रहा है:

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

QSIZEदुर्भाग्य से बाइट्स, नहीं गए संदेशों में आकार है, लिनक्स पर वहाँ (अभी तक) कोई संदेश गणना फ़ील्ड नहीं है - FreeBSD के विपरीत जो एक CURMSGमूल्य प्रदान करता है :

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

तो जवाब होना चाहिए "mqueue FS को माउंट करें और उपयोग करें cat", लेकिन यह नहीं है :(

(एमक्यू एपीआई का उपयोग करने के लिए एमकेयू एफएस को माउंट करना एक पूर्वापेक्षा नहीं है, यह आपको कुछ "सब कुछ एक फाइल" सामान करने देता है।)

यदि आपको वास्तव में कतारों की निगरानी करने की आवश्यकता है, तो पुस्तक द लिनक्स प्रोग्रामिंग इंटरफेस में संदेश कतार बनाने, निरीक्षण करने और उपयोग करने के लिए विभिन्न सीएलआई उपकरणों के लिए सी स्रोत कोड है। इस विषय को शामिल करने वाली पुस्तक का हैप्पीली अध्याय 52 वर्तमान में डाउनलोड करने के लिए मुफ्त उपलब्ध है। देखते हैं pmsg_getattr.c

स्टीफन के यूनिक्स नेटवर्क प्रोग्रामिंग (वॉल्यूम 2) 2 एड से विहित संदर्भ कोड (1999) यहां उपलब्ध है , यह अन्य चीजों के बीच प्रदान करता है mqgetattrजो काम भी करेगा (हालांकि आपको शीर्ष स्तर में कुछ पंक्तियों की मालिश करने की आवश्यकता होगी config.h, समकालीन यूनिक्स सिस्टम हेडर के साथ #defineविभिन्न uintप्रकार के संघर्ष के लिए )।

इसके लिए रूबी , पर्ल और टीसीएल मॉड्यूल भी हैं , रूबी एक posix-mq-rbसीएलआई टूल के साथ आता है ।


मैं ubuntu प्रणाली का उपयोग कर रहा हूँ ..
sujin

9

$ ipcs -q कमांड लाइन से संदेश कतार आँकड़े प्रदान करेगा।

$ ipcs -m कमांड लाइन से साझा मेमोरी आँकड़े प्रदान करेगा।

$ ipcs सभी आईपीसी तंत्र आँकड़े प्रदान करेगा।


8
ipcsPOSIX1 संदेश कतारों के लिए नहीं है
whoan

2
ipcsका उपयोग सिस्टम V संदेश कतारों के लिए किया जाता है और POSIX संदेश कतारों के लिए नहीं
येरके
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.