हम लिनक्स में दुर्घटनाग्रस्त कार्यक्रमों की समस्याओं का पता कैसे लगा सकते हैं?


12

यदि कोई अनुप्रयोग Windows में क्रैश हो जाता है तो हम प्रशासन उपकरण में ईवेंट व्यूअर की जांच कर सकते हैं कि क्या क्रैश हुआ है। कभी-कभी इसमें दूसरों के लिए उपयोगी जानकारी नहीं होती है, लेकिन यह एक शुरुआत है।
अगर कोई एप्लिकेशन (कोई) क्रैश हो जाता है तो लिनक्स कैसे ट्रेस करता है?
क्या कुछ केंद्रीय लॉग या कुछ समान है?


2
इस तरह की चीज़ को डिबग करने का मानक तरीका मैन्युअल रूप से एक टर्मिनल से समस्याग्रस्त एप्लिकेशन लॉन्च करना है। इस तरह आप किसी भी त्रुटि संदेश मुद्रित देख सकते हैं।
terdon

2
लिनक्स के 64-बिट संस्करण एक दुर्घटनाग्रस्त प्रक्रिया (एक संकेत के कारण मृत्यु हो गई) का संक्षिप्त विवरण लॉग करेंगे /var/log/syslog। लिनक्स एक डेमॉन को प्रक्रिया क्रैश की सूचना देने का एक तरीका प्रदान करता है। उबंटू के ऐपर्ट और रेड हैट के एबट केंद्रीयकृत लॉगिंग और रिपोर्ट-जनरेशन सुविधाएं प्रदान करने के लिए इसका उपयोग करते हैं। आम तौर पर एक कोर डंप बचाया जाता है ताकि आप दुर्घटनाग्रस्त कार्यक्रम पर डिबगर को लागू कर सकें।
मार्क प्लॉटनिक

मैंने इस सवाल को उठाया होगा, लेकिन ओपी ऐसा नहीं लगता है कि वह समुदाय को स्वीकार करने, या पोस्ट करने, एक उत्तर देने में मदद करना चाहता है, इसलिए मुझे एक ऐसा ही सवाल मिलेगा, जो एक उत्तर को स्वीकार करता है और अपवोट करता है, इस उम्मीद में कि यह होगा खोज परिणामों के शीर्ष पर जाएं और भविष्य के खोजकर्ताओं की मदद करें
Mawg का कहना है कि मोनिका

जवाबों:


13

क्या कुछ केंद्रीय लॉग या कुछ समान है?

सिस्टम लॉग के लिए सामान्य स्थान है /var/log/। प्रत्येक लॉग में क्या डाला जाता है, यह syslog कॉन्फ़िगरेशन पर निर्भर करता है, लेकिन आमतौर पर लॉगिन को छोड़कर सब कुछ होता है /var/log/syslog

यह कोई गारंटी नहीं है कि किसी समस्या की स्थिति में व्यक्तिगत अनुप्रयोगों ने कोई सुराग नहीं छोड़ा होगा। लेकिन वे, या शेल, संभवतया मानक आउट / मानक त्रुटि धाराओं के लिए कुछ थूक देंगे, और यदि आप किसी टर्मिनल से अग्रभूमि में एक परेशानी भरा आवेदन चलाते हैं तो आप उस सामान को देख पाएंगे।


किसी /var/logलॉग फ़ाइल के लिए क्या देखना चाहिए ? क्या कुछ सम्मेलन है?
जिम

2
यदि आप क्रैश कर सकते हैं, तो ऐसा करें, फिर देखें कि हाल ही में किस फ़ाइल के तहत / var / log सबसे बदला गया था। साथ ls -lart, सूची में पिछले फ़ाइल सबसे हाल ही में बदल गया था।
Devon_C_Miller

कर रहे हैं सम्मेलन रों - लिनक्स ज्यादा खिड़कियों की तुलना में अधिक विषम है। Syslog सिस्टम लकड़हारा को संदर्भित करता है, लेकिन एक सार्वभौमिक कार्यान्वयन नहीं है, और विविधताएं फिर विभिन्न तरीकों से कॉन्फ़िगर की जा सकती हैं। सामान्य तर्क यह है कि संदेशों को एप्लिकेशन द्वारा syslog में भेजा जाता है, और फिर इन संदेशों को अलग-अलग फ़ाइलों में सॉर्ट किया जाता है। जैसा कि उल्लेख किया गया है, आमतौर पर सब कुछ खत्म हो जाता है /var/log/syslog, लेकिन अलग-अलग डिस्ट्रोस चीजों को अलग तरीके से करते हैं। यदि आप जानते हैं कि आप किस syslog का उपयोग कर रहे हैं, तो आप इसे निर्धारित करने के लिए इसके कॉन्फ़िगरेशन की जांच कर सकते हैं।
गोल्डीलॉक्स

6

Ubuntu segfaults पर लिखा मिलता है /var/log/kern.log। मैंने इसे एक प्रोग्राम बनाकर जांचा जो segfaults:

void main() {
    int *a=0;
    *a=0;
}

इसके बाद सेगफॉल्ट होने के बाद यह रेखा इस प्रकार थी /var/log/kern.log:

a.out[534]: segfault at 0 ip 08048432 sp bfaec8c0 error 6 in a.out[8048000+1000]

1

उबंटू में यदि आप एक .desktop लॉन्चर फ़ाइल से अपना एप्लिकेशन लॉन्च कर रहे हैं, तो Terminal=trueअपने .desktop फ़ाइल में विकल्प जोड़ें ।

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