मैं आर्चलिनक्स में गनोम शेल के साथ एक सुंदर शटडाउन / रिबूट प्राप्त करने की कोशिश कर रहा हूं। अब, जब मैं शट-डाउन करने के लिए कहता हूं, तो यह तुरंत खुले कार्यक्रमों को खुलेआम बंद करने / खुली फाइलों को सहेजने का समय दिए बिना बंद कर देता है। परिणामस्वरूप, जब भी मैं क्रोम को पुनः आरंभ करता हूं (उदाहरण के लिए) यह मुझे बताता है कि सत्र को सही ढंग से बंद नहीं किया गया था आदि। वेब पर पढ़कर मैंने प्रक्रियाओं को बंद करते समय उस सिस्टम को सीखा, यह पहले प्रक्रिया SIGTERM
द्वारा SIGKILL
बंद न होने पर उसके बाद भेज देता है एक निश्चित समय समाप्त होने पर। हालाँकि मुझे लगता है कि मेरे सिस्टम पर SIGKILL
तुरंत बाद भेजा जाता है SIGTERM
और मुझे लगता है कि यह एक गैर-सुशोभित कार्यक्रम समाप्ति का कारण है।
मुझे कुछ दस्तावेज मिले हैं (यदि मैं इसे सही तरीके से पढ़ता हूं) कहता है कि भेजने से पहले समय समाप्ति विकल्प SIGKILL
द्वारा निर्धारित की जा सकती है TimeoutStopSec=
। इसके अलावा भेजने SIGKILL
को भी SendSIGKILL=
विकल्प द्वारा अक्षम किया जा सकता है। लेकिन मुझे नहीं पता है कि उन विकल्पों को कॉन्फ़िगर करने के लिए ... क्या कोई सिस्टमड शटडाउन / रिबूट कॉन्फ़िगरेशन फ़ाइल है जहां मैं उन विकल्पों को सेट कर सकता हूं?
संपादित करें:
मैंने कुछ परीक्षण किया और मुझे दो रोचक बातें पता चलीं:
- अगर मैं मैन्युअल रूप से क्रोम को इस तरह से बंद कर देता हूं
killall -SIGTERM chrome
, तो यह शिकायत नहीं करेगा कि इसे अगली बार फिर से शुरू करने के बाद सही ढंग से बंद नहीं किया गया है। अगर मैं इसके बजाय इसे बंद कर देता हूंkillall -SIGKILL chrome
, तो यह शिकायत करेगा। यह मुझे बताता है कि क्रोम SIGTERM को सही ढंग से संभाल रहा है। - मेरी शटडाउन प्रक्रिया के आउटपुट को देखते हुए, सिस्टमड प्रिंट
Sending SIGTERM...
तुरंत उसके बाद आता हैSending SIGKILL...
नीचे टिप्पणी के अनुसार, systemd अपनी प्रक्रियाओं को ही संभाल रहा है। इसलिए मेरे मामले में जी.डी.एम. यह मुझे बताता है कि मुद्दा हो सकता है:
- जीडीएम या तो इसे बंद नहीं कर रहा है बच्चे की प्रक्रिया (जैसे क्रोम) सही ढंग से (यानी उन्हें SIGTERM भेजकर)
- या systemd GDM को एक SIGKILL संदेश भेज रहा है जो इसे अपने बच्चों को सही ढंग से बंद करने का समय नहीं दे रहा है।
क्या वास्तव में जीडीएम अपने बच्चों को बंद करने की जांच / कॉन्फ़िगर करने का एक तरीका है?
systemd's
नियंत्रण - systemd
है pid 1
- लेकिन बाद में एक subshell और आह्वान बच्चे की प्रक्रिया में अपनी आवरण स्क्रिप्ट से बाहर क्रोम अधिकारियों। फिर भी, यह वही करेगा जो इसे zygotes
तब तक मारने की जरूरत है जब तक कि आपका सिस्टम ठीक से कॉन्फ़िगर न हो जाए। क्या आप क्रोम के लिए उन अस्थायी-अंतरिक्ष समाधानों में से एक का उपयोग कर रहे हैं जो आपको आर्क विकी में अनुशंसित होंगे?
gnome-session
।