मैं अब तक एक सप्ताह के लिए ऐपॉर्ट और इसके उपयोग के बारे में पढ़ रहा हूं। लेकिन नीचे की बातों को समझ नहीं सका।
परिदृश्य:
मैंने एक एप्लिकेशन विकसित किया है और इसे पैक किया है। और उसका नाम है MyApp.deb
। बाइनरी पैकेज नाम है MyApp
। अनुप्रयोग पथ में स्थापित है /opt/myapplication/bin/MyApp
।
आवश्यकता:
- जब मेरा एप्लिकेशन क्रैश हो जाता है, तो मैं कोर डंप इकट्ठा करने में सक्षम होना चाहता हूं।
- प्रत्येक बाद की दुर्घटना पर, उसे एक नया क्रैश बनाना होगा, लेकिन मौजूदा को अधिलेखित नहीं करना चाहिए। वर्तमान समय के टिकट के साथ ऑटो का नाम बदलने जैसे कुछ, मेरी मदद करेंगे।
- जब मैं एक ग्राहक मशीन पर अपना एप्लिकेशन इंस्टॉल करता हूं, तो मेरे इंस्टॉलर को अपने सिस्टम के विस्तृत मापदंडों को संशोधित नहीं करना चाहिए। उदाहरण के लिए कहें, तो मुझे उसकी कोर फाइल पीढ़ी का पैटर्न नहीं बदलना चाहिए, क्योंकि उपयोगकर्ता / ग्राहक को मेरे आवेदन से नफरत हो सकती है क्योंकि मैं उसकी सहमति के बिना उसके सिस्टम मापदंडों को बदल दूंगा।
- मैं कोर फाइल जनरेशन के रास्ते से ठीक हूं। या तो वर्तमान निर्देशिका या
/var/crash
चीजें जो मैंने अब तक खोजी हैं:
Apport एक अच्छी उपयोगिता है जो कोर फ़ाइल पीढ़ियों को सक्षम बनाता है। /proc/sys/kernel/core_pattern
I का उपयोग करके मैं कोर फाइलों को प्रारूपित कर सकता हूं। यह कोर फ़ाइलों को पूर्वनिर्धारित निर्देशिका में रीडायरेक्ट करने के लिए लचीलापन प्रदान करता है, कोर फाइलों को पिड के साथ नाम देता है, फ़ाइल पथ पैटर्न को जोड़ा जाता है या इसके लिए पूर्व-समाप्त होता है, आदि .. गैर उबंटू पैकेजों के लिए, मुझे कोर डंप (रिपोर्ट) उत्पन्न करने के लिए हुक लिखना होगा। । रिपोर्ट एकत्रित करने के बाद उसे अपलोड करें।
चीजें जो मुझे समझ में नहीं आती हैं:
- क्या मैं जिसको देख रहा हूँ, उसे स्वीकार करें ?? मेरा मतलब है कि यह मेरा उद्देश्य पर्याप्त है? या मुझे कुछ और देखना चाहिए?
- मेरा आवेदन किस प्रकार के पैकेज के अंतर्गत आता है? क्या मैं इसे गैर-उबंटु कहता हूं? तीसरा भाग? यह क्या है? मैं दस्तावेजों में विभिन्न शब्दावली देखता हूं?
- जैसा कि मैंने उल्लेख किया है, से
MyApp
चलता है/opt/myapplication/bin/MyApp
, तो कोर फाइलें कहाँ से उत्पन्न होंगी? वर्तमान dir या/var/crash
? क्या Apport दुर्घटनाओं का पता लगाता है/opt
? क्या इसकी व्याख्या करता है? - महत्वपूर्ण प्रश्न: यदि मैंने एप्लिकेशन विकसित किया है और यदि Apport उबंटू रिपॉजिटरी को रिपोर्ट अपलोड करता है, तो इसका कोई मतलब नहीं है। तो मैं रिपोर्ट भेजने के लिए Apport को कैसे बता सकता हूँ।
- मुझे यह त्रुटि मिली
executable does not belong to a package, ignoring
:। तो मैं क्या गलत हूं? - अपने पैकेज को पहचानने के लिए, क्या मुझे इसे स्रोत पैकेज बनाने की आवश्यकता है? क्या यह अनिवार्य है? मैं सिर्फ एक बाइनरी पैकेज बनाना चाहता हूं?
- मैंने उन दस्तावेजों में भी कहीं देखा है जिन्हें Apport पहचानता है:
- उबटन पैकेज या
- लॉन्चपैड एप्लिकेशन लेकिन मेरा आवेदन इनमें से कुछ भी नहीं है। तो वर्तमान परिदृश्य में Apport मेरी मदद कैसे करता है?