जिस कंपनी में मैं अभी काम कर रहा हूँ, वहाँ एक विरासत सेवा है और इसकी 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
...