मैं कर्नेल मारे गए प्रक्रियाओं की सूची कहां देख सकता हूं?


33

क्या कोई तरीका है जिससे मैं जाँच सकता हूँ कि मेरी कौन सी प्रक्रिया में कर्नेल मारा गया है? कभी-कभी मैं अपने सर्वर पर लॉग इन करता हूं और पाता हूं कि पूरी रात चलने वाली कोई चीज 8 घंटे में ही बंद हो जाती है और अगर यह एप्लिकेशन कर रहा है या गुठली है तो मैं अनिश्चित हूं।

जवाबों:


30

यदि कर्नेल ने एक प्रक्रिया को मार दिया (क्योंकि सिस्टम मेमोरी से बाहर चला गया), तो एक कर्नेल लॉग संदेश होगा। में चेक करें /var/log/kern.log(डेबियन / उबंटू पर, अन्य वितरण कर्नेल लॉग को एक अलग फ़ाइल में भेज सकते हैं, लेकिन आमतौर पर /var/logलिनक्स के तहत)।

ध्यान दें कि अगर OOM- किलर (आउट-ऑफ-मेमोरी किलर) ट्रिगर हो गया, तो इसका मतलब है कि आपके पास पर्याप्त वर्चुअल मेमोरी नहीं है। अधिक स्वैप (या शायद अधिक रैम) जोड़ें।

कुछ प्रक्रिया दुर्घटनाओं को कर्नेल लॉग में भी दर्ज किया जाता है (जैसे विभाजन दोष)।

यदि प्रक्रिया क्रोन से शुरू की गई थी, तो आपके पास त्रुटि संदेशों के साथ एक मेल होना चाहिए। यदि किसी टर्मिनल में शेल से प्रक्रियाएं शुरू की गई थीं, तो उस टर्मिनल में त्रुटियों की जांच करें। screenसुबह फिर से टर्मिनल देखने के लिए प्रक्रिया को चलाएं । अगर ओओएम-हत्यारा ट्रिगर हो गया तो यह मदद नहीं कर सकता है, क्योंकि इससे क्रोन या स्क्रीन प्रक्रिया भी हो सकती है; लेकिन अगर आप OOM- किलर में भाग गए, तो आपको समस्या को ठीक करना होगा।


थ्रेड किल मैसेज किस तरह का है /var/log/kern.log?
मधुमक्खी २

12

प्रक्रिया लेखा यहाँ मदद कर सकता है।

संक्षेप में:

apt-get install acct

तो जैसे आदेश का प्रयास करें:

lastcomm
sa

या उबंटू पर:

lastcomm -f /var/log/account/pacct
sa /var/log/account/pacct

देख:

अद्यतन करें

अजीब, pacctफ़ाइल बाहर निकलने के स्थिति के बारे में जानकारी नहीं है, लेकिन न तो lastcommहै और न ही saइसे प्रिंट करने लगते हैं।

इसलिए जहां तक ​​मैं देख सकता हूं, आपको जानकारी तक पहुंचने के लिए अपना सी प्रोग्राम लिखना होगा।

अद्यतन २

यहां एक संस्करण है जो निकास कोड को प्रिंट करता है।

अंतिम दो फ़ील्ड सिग्नल के लिए "S" और बाहर निकलने के लिए "E" हैं, इसके बाद सिग्नल नंबर या एक्जिट स्टेटस आता है।

तो आपके मामले में, आप शायद "S 15" की तलाश कर रहे हैं जिसका अर्थ है कि यह SIGTERM है।

sleep                X mikel    stdin      0.00 secs Fri Mar 25 20:15 S  15

"ई 0" की तुलना में जिसका अर्थ है त्रुटि के बिना बाहर निकलने की प्रक्रिया।

true                   mikel    stdin      0.00 secs Fri Mar 25 20:16 E   0

केवल न्यूनतम परीक्षण किया गया।


-1

सूद सेवा --status-all

यह कमांड आपको बताएगी कि वर्तमान में कौन-कौन सी सेवाएँ चल रही हैं और जिन्हें शुरू नहीं किया गया है या बंद कर दिया गया है।

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