मैं जावा डिमन लॉन्च करने के लिए मूल संकलित जेएसवीसी का उपयोग कर रहा हूं। मैं इसे ओपनएसयूएसई 32 बिट वीएम पर चला रहा हूं। कोड अपाचे के डिमन इंटरफ़ेस को लागू करता है, और मैं निम्न आदेश के साथ deamon निष्पादित कर रहा हूँ।अपाचे जेएसवीसी डिमन को रोकने में विफल रहता है
./jsvc -home jre -errfile logs/jsvc.err -pidfile daemon.pid -cp <my_classpath> com.loader.loaderservice.LoaderDaemon
यह किसी समस्या के बिना शुरू होता है और चलता है। मैं डिमन को सामान्य उपयोगकर्ता और रूट के रूप में शुरू कर सकता हूं। हालांकि, जब मैं डिमन को समाप्त करने के लिए जाता हूं, तो जेएसवीसी स्टॉप कमांड जारी करने की बजाय प्रक्रिया को मार देता है।
./jsvc -stop -home jre -outfile logs/jsvc.err -errfile logs/jsvc.err -pidfile daemon.pid -cp <my_classpath> com.loader.loaderservice.LoaderDaemon
डेमॉन प्रक्रिया मर जाता है, लेकिन इसके बंद चरणों में से किसी निष्पादित नहीं करता है (उदाहरण के लिए, यह लॉग इन करना चाहिए, DB में एक रिकार्ड, आदि निशान)। मैं लॉग/jsvc.err फ़ाइल में निम्न मिलता है, और यह किसी भी अन्य लॉग लिखना नहीं करता है:
Service exit with return value 143
त्रुटि googling के बाद, मैं लोगों के एक मुट्ठी भर दिखाई दे रही है, जो सभी एक ही बात को देखा है , लेकिन मुझे कहीं भी एक अच्छा रिज़ॉल्यूशन नहीं मिल सकता है (http://mail-archives.apache.org/mod_mbox/commons-dev/200401.mbox/%[email protected]। es% 3E, http://www.tek-tips.com/viewthread.cfm?qid=1014679, http://threebit.net/mail-archive/tomcat-users/msg03832.html)।
अद्यतन: अपाचे की खिड़की की सेवा लांचर (procrun) मैं शुरू करने और बिना किसी समस्या के सेवा बंद करने में सक्षम हूँ का उपयोग करना। समस्या केवल जेएसवीसी संबंधित है, और केवल डेमॉन को रोकने पर।
अद्यतन 2: http://commons.apache.org/daemon/jsvc.html#Starting_jsvc पढ़ने अधिक ध्यान करने के बाद, मैंने देखा है कि बंद टैग मैं मुद्दों पर एक मार आदेश का उपयोग कर रहा हूँ पीआईडी फ़ाइल मेरे द्वारा निर्दिष्ट के माध्यम से प्रक्रिया पी एन। ऐसा लगता है कि जेएसवीसी वास्तव में डिज़ाइन द्वारा डिमन को दृढ़ता से नहीं रोकता है। यह उस व्यवहार के अनुरूप है जो मैं देख रहा हूं, क्योंकि बहुत वर्बोज़ स्टॉप विधि किसी भी संदेश को लिख नहीं रही है।
-stop stop the service using the file given in the -pidfile option
नए सवाल:
- मेरी जावा मुख्य अपाचे Daemon इंटरफ़ेस लागू किया है तो मैं कैसे एक चल डेमॉन पर 'स्टॉप' जारी करते हैं?
- क्या मुझे जेएसवीसी के अलावा कुछ और चाहिए (ऐसा लगता है कि यह केवल डेमन शुरू करने या मारने के लिए उपयोगी है)?