2015-06-11 5 views
6

मैं POSIX संदेश कतारों के साथ टीसीपी सॉकेट को प्रतिस्थापित करने के लिए कुछ कोड लिख रहा हूं। कभी-कभी प्रोग्राम क्रैश हो जाएगा (अभी भी विकास में) और बनाए गए कतार हटाए नहीं गए हैं (निष्पादित नहीं किया गया: mq_close() + mq_unlink())। जब मैं कोड फिर से चलाता हूं तो इससे समस्याएं उत्पन्न होती हैं।पॉज़िक्स संदेश कतार और कमांड लाइन?

क्या कमांड लाइन का उपयोग करके इन कतारों को हटाने/निकालने का कोई तरीका है? मैंने उपयोग करने का प्रयास किया: ipcs -q। यह किसी भी कतार सूचीबद्ध करने में विफल रहा।

मैंने कोशिश की: lsof | grep queue-name। उन्होंने यहां दिखाया था।

आदर्श रूप में, मैं उपयोग करना चाहता हूं: ipcrm

उत्तर

10

पॉज़िक्स आईपीसी ऑब्जेक्ट्स वर्चुअल फाइल सिस्टम में फ़ाइलों के रूप में लागू किए जाते हैं। इन फ़ाइलों को सूचीबद्ध और एलएस और आरएम के साथ हटाया जा सकता है। POSIX संदेश कतारों के साथ ऐसा करने के लिए, हमें निम्न आदेशों का उपयोग करके संदेश कतार फ़ाइल सिस्टम को माउंट करना होगा:

$ su 
Password: 
# mkdir /dev/mqueue 
# mount -t mqueue none /dev/mqueue 
# exit 
+2

यह स्वयं को उत्तर देने के लिए काफी स्वीकार्य है। इससे भविष्य में इस प्रश्न को देखने वाले अन्य लोगों की मदद मिलेगी। – Mawg

+1

जैसा कि @Mawg ने उल्लेख किया है, [स्वीकार करें] (https://stackoverflow.com/help/accepted-answer) को अपने स्वयं के उत्तर में संकोच न करें। यह जवाब मेरे लिए भी अच्छा काम करता है। (मैं 'su' को हटा दूंगा और' sudo 'का उपयोग करें।) – Melebius

संबंधित मुद्दे