हाल ही में systemd में अपग्रेड के बाद कोई कोर-डंप नहीं?


12

जब मैं एक प्रोग्राम निष्पादित करता हूं, जिस पर मैं काम करता हूं, तो यह निम्न संदेश के साथ विफल होता है:

...
Aborted (core dumped)

हालांकि, कोई कोर डंप नहीं बनाया गया है। कोर डंप पहले लिखे गए थे, और मुझे याद नहीं है कि मैंने इससे संबंधित कुछ भी बदल दिया है।

जब मैं दौड़ता ulimit -aहूं तो वापस आ जाता हूं,

$ ulimit -a
core file size          (blocks, -c) unlimited
...

अन्य बिंदु,

  • मैंने सत्यापित किया कि मेरा उपयोगकर्ता वर्तमान निर्देशिका में फ़ाइलें बना सकता है।
  • के बारे में पढ़ा /proc/sys/fs/suid_dumpable। वर्तमान में, यह मेरी मशीन पर 0 पर सेट है। मैंने इसे 1 या 2 में बदलने की कोशिश की लेकिन कोई फर्क नहीं पड़ा।
  • मैंने कार्यक्रम को मूल रूप से निष्पादित करने का भी प्रयास किया, लेकिन इससे भी कोई फर्क नहीं पड़ा।

दुर्भाग्य से, मुझे याद नहीं है कि मैं आखिरी सफल कोर-डंप का उत्पादन कब कर सकता हूं।

जवाबों:


8

डॉक्स से coredump.conf,

विक्रेता द्वारा आपूर्ति की गई कॉन्फ़िगरेशन फ़ाइल को अक्षम करने के लिए, अनुशंसित तरीका है कि विक्रेता कॉन्फ़िगरेशन फ़ाइल के समान फ़ाइल नाम के साथ /dev/nullकॉन्फ़िगरेशन निर्देशिका में एक सिमलिंक रखें /etc/

sudo ln -s /dev/null /etc/sysctl.d/coredump.conf
sudo systemd-sysctl 

सिस्टमड के बाद से, चीजों को अलग तरीके से प्रबंधित किया जाता है।


वाह, आप सही हैं! बहुत समय पहले मैंने सिस्टमड में स्विच किया था। sudo systemd-coredumpctlसभी लापता कोर डंप दिखाता है। आपके समाधान ने काम किया लेकिन सिस्टम रिबूट के बाद ही।
फिलिप क्लेवेन

1
systemd's systemd-sysctl.serviceसिर्फ रन sysctlपरिवर्तन पर हाथ से लौटकर बूट के समुचित बिंदु पर, और हैंडल। और वे और उनकी सामग्री के बारे में जांच किए बिना कॉन्फ़िगरेशन फ़ाइलों को बनाने / ओवरराइट करने पर न जाएं।
वॉनब्रांड

1
फ़ाइल का नाम बदला जा 50-coredump.confरहा है, वर्तमान बूट में सेटिंग्स को लागू करने के लिए, मुझे मैन्युअल रूप से sysctl सेटिंग को बदलना होगा, stackoverflow.com/q/2065912/427545 देखें ।
लेकेनस्टेन

2
डिफ़ॉल्ट को पुनर्स्थापित करने के लिए, एक खाली स्ट्रिंग सेट न करें, इसके बजाय इसका उपयोग करें:sysctl -w kernel.core_pattern="core"
Lekensteyn

2

आप coredumpctlअपने कोर डंप को पुनः प्राप्त करने या उस पर gdb चलाने के लिए कमांड का उपयोग करना चाह सकते हैं । यही उनके साथ व्यवहार करने का 'सिस्टमड अप्रूव्ड' तरीका है। : - /

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

लेकिन, यह उन लोगों के लिए अधिसूचना या संकेत के तरीके से थोड़ा-सा परिवर्तन था, जो सिस्टम के शामिल होने से पहले जानते थे कि कैसे coredumps ने काम किया था। यहां तक ​​कि अपने coredump को प्राप्त करने के लिए coredumpctl का उपयोग करने के निर्देशों के साथ 'core.pid.txt' नामक एक फ़ाइल को छोड़ने के साथ-साथ .txtफ़ाइलों के निर्माण को कैसे बंद किया जाता है, यह एक बड़ी मदद होती, भले ही वे भी अटे पड़े हों। थोड़ी देर के लिए फाइल सिस्टम।

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