जिस कंपनी में मैं अभी काम कर रहा हूँ, वहाँ एक विरासत सेवा है और इसकी init स्क्रिप्ट पुराने SysvInit का उपयोग कर रही है, लेकिन सिस्टमड (7 CentOS) पर चल रही है।
क्योंकि बहुत अधिक संगणना है, इस सेवा को समाप्त होने में लगभग 70 सेकंड लगते हैं। मैंने सिस्टमड के लिए कोई टाइमआउट कॉन्फ़िगर नहीं किया था, और डिफ़ॉल्ट कॉन्फिग को नहीं बदला था /etc/systemd/system.conf, लेकिन फिर भी जब मैं service SERVICE stopअपनी सेवा को निष्पादित करता हूं तो 60 सेकंड के लिए समय समाप्त हो जाता है।
साथ जाँच हो रही है journalctl -b -u SERVICE.serviceमैं इस लॉग पाते हैं:
Sep 02 11:27:46 service.hostname systemd[1]: Stopping LSB: Start/Stop
Sep 02 11:28:46 service.hostname SERVICE[24151]: Stopping service: Error code: 255
Sep 02 11:28:46 service.hostname SERVICE[24151]: [FAILED]
मैं पहले से ही बदल रहा है की कोशिश की DefaultTimeoutStopSecपर संपत्ति /etc/systemd/system.confके लिए 90sहै, लेकिन अभी भी समय समाप्त होता है।
क्या किसी को कोई विचार नहीं है कि वह 60 के दशक में क्यों टाइमआउट कर रहा है? कहीं और है कि यह टाइमआउट मान कॉन्फ़िगर किया गया है? क्या कोई तरीका है जो मैं इसकी जांच कर सकता हूं?
यह सेवा जावा 7 के साथ चलती है और इसे निष्क्रिय करने के लिए, यह JSVC का उपयोग करता है । मैंने -waitमान के साथ पैरामीटर कॉन्फ़िगर किया है 120।
TimeoutSec=infinity- क्या यह संभव नहीं होगा कि यह एक रिबूट को अनिश्चित काल के लिए ब्लॉक कर दे? क्या होगा अगर यह उस प्रक्रिया से बाहर निकलने के लिए "हमेशा के लिए" लेता है? मैं एक बड़ी राशि का सुझाव देता हूं, जैसे5min, लेकिन शायद नहींinfinity...