मुझे दो अनुप्रयोगों के बीच संवाद करने के लिए सर्वर में जावा जार चलाने की आवश्यकता है। मैंने इसे चलाने के लिए दो खोल स्क्रिप्ट लिखी हैं, लेकिन एक बार जब मैं उस स्क्रिप्ट को शुरू करता हूं तो मैं प्रक्रिया को बंद/समाप्त नहीं कर सकता। अगर मैं ctrl + सी दबाता हूं या कंसोल बंद करता हूं, तो सर्वर बंद हो जाएगा। क्या कोई मेरी मदद कर सकता है कि इस स्क्रिप्ट को सामान्य सर्वर के रूप में चलाने के लिए कैसे संशोधित करें?पृष्ठभूमि प्रक्रिया के रूप में सर्वर पर जावा जार फ़ाइल चलाएं
#!/bin/sh
java -jar /web/server.jar
echo $!
#> startupApp.pid
धन्यवाद एंटोन, प्रक्रिया आईडी को मार कर सर्वर को रोक रहा हूँ। मुझे नहीं लगता कि यह सबसे अच्छा अभ्यास है। सर्वर को रोकने के लिए थ्री कमांड? –
संक्षिप्त उत्तर: यह सर्वर पर निर्भर करता है। लंबा जवाब: जहां तक मुझे पता है, इस तरह के सुंदर बंद करने का समर्थन करने की प्रक्रिया के बिना प्रक्रिया को बंद करने का कोई सुरक्षित तरीका नहीं है। उदाहरण के लिए, यदि यह एक बाहरी सर्वर द्वारा एक वेब सर्वर को समाप्त किया जा रहा है, तो हमेशा एक संभावना है कि कुछ अनुरोध खो जाएंगे। इस समस्या को हल करने का एक तरीका सर्वर में एक सुंदर समाप्ति समारोह को लागू करना है, उदा। एक विशेष प्रकार के अनुरोधों को संसाधित करके। फिर, सर्वर को उस विशेष प्रकार का अनुरोध भेजकर समाप्त कर दिया जा सकता है। अन्यथा, इसकी आईडी द्वारा प्रक्रिया को मारना एक आसान तरीका है। –