वे एक वसंत आवेदन को बंद करने के कई तरीके हैं। एक को कॉल करना है ApplicationContext:
ApplicationContext ctx =
SpringApplication.run(HelloWorldApplication.class, args);
// ...
ctx.close()
आपका प्रश्न यह सुझाव देता है कि आप अपना आवेदन बंद करके करना चाहते हैं Ctrl+C , जिसका उपयोग अक्सर किसी आदेश को समाप्त करने के लिए किया जाता है। इस मामले में...
उपयोग endpoints.shutdown.enabled=trueसबसे अच्छा नुस्खा नहीं है। इसका मतलब है कि आप अपने आवेदन को समाप्त करने के लिए एक अंतिम बिंदु को उजागर करते हैं। इसलिए, आपके उपयोग के मामले और आपके वातावरण के आधार पर, आपको इसे सुरक्षित करना होगा ...
Ctrl+Cअपने मामले में बहुत अच्छा काम करना चाहिए। मुझे लगता है कि आपका मुद्दा एम्परसेंड (और) के कारण है और अधिक स्पष्टीकरण:
स्प्रिंग एप्लीकेशन प्रसंग में जेवीएम रनटाइम के साथ शटडाउन हुक रजिस्टर हो सकता है। ApplicationContext प्रलेखन देखें ।
मुझे नहीं पता कि स्प्रिंग बूट ने इस हुक को स्वचालित रूप से कॉन्फ़िगर किया है जैसा कि आपने कहा था। मुझे लगता है कि यह है।
पर Ctrl+C, आपका शेल INTअग्रभूमि अनुप्रयोग के लिए एक संकेत भेजता है । इसका अर्थ है "कृपया अपने निष्पादन को बाधित करें"। आवेदन इस संकेत को फंसा सकता है और इसकी समाप्ति (वसंत द्वारा पंजीकृत हुक) से पहले सफाई कर सकता है, या बस इसे (खराब) अनदेखा कर सकता है।
nohupवह कमांड है जो HUP सिग्नल को अनदेखा करने के लिए एक जाल के साथ निम्नलिखित प्रोग्राम को निष्पादित करता है। HUP का उपयोग प्रोग्राम को समाप्त करने के लिए किया जाता है, जब आप हैंग हो जाते हैं (उदाहरण के लिए अपने ssh कंसेशन को बंद करें)। इसके अलावा यह इस बात से बचने के लिए आउटपुट को पुनर्निर्देशित करता है कि आपका प्रोग्राम गायब टीटीवाई पर ब्लॉक करता है। nohupINT संकेत की अनदेखी नहीं करता है। तो यह Ctrl+Cकाम करने के लिए नहीं रोकता है।
मुझे लगता है कि आपका मुद्दा एम्परसेंड (और) के कारण है, नोह द्वारा नहीं। Ctrl+Cअग्रभूमि प्रक्रियाओं के लिए एक संकेत भेजता है। एम्परसैंड आपके एप्लिकेशन को पृष्ठभूमि में चलाने का कारण बनता है। एक समाधान: करते हैं
kill -INT pid
उपयोग kill -9 या kill -KILLखराब है क्योंकि एप्लिकेशन (यहां JVM) इसे शान से समाप्त करने के लिए नहीं फंसा सकता है।
एक अन्य उपाय यह है कि अपने आवेदन को अग्रभूमि में वापस लाया जाए। फिर Ctrl+Cकाम करेंगे। बैश जॉब कंट्रोल पर एक नजर, अधिक सटीक रूप से fg।