2008-10-10 14 views
24

जावा प्रोसेस कंट्रोल कुख्यात रूप से खराब है - मुख्य रूप से जावा वीएम/जेडीके कक्षाओं (जैसे java.lang.Process) द्वारा अपर्याप्त समर्थन के कारण।गुड जावा प्रोसेस कंट्रोल लाइब्रेरी

मुझे आश्चर्य है, क्या वहां कोई अच्छी ओपन सोर्स लाइब्रेरी है जो विश्वसनीय हैं।

आवश्यकताओं होगा:

  1. ओएसएस
  2. प्रारंभ/बंद प्रक्रियाओं
  3. STDIN और STDOUT
  4. क्रॉस प्लेटफॉर्म (कम से कम लिनक्स, विंडोज, सोलारिस, हिमाचल प्रदेश, और आईबीएम में प्रबंधित ऑर्डर)
  5. (वैकल्पिक) पुनरारंभ करने योग्य
  6. (वांछनीय) परिपक्व
+0

मैं एक प्रक्रिया निर्भरता धारणा को आवश्यकता के रूप में जोड़ूंगा: एक प्रक्रिया/सेवा केवल तभी शुरू होनी चाहिए जब इसकी निर्भर प्रक्रिया/सेवा शुरू हो। यदि कोई प्रक्रिया/सेवा बंद हो जाती है, तो इसकी सभी निर्भर प्रक्रियाएं/सेवाएं बंद हो जाती हैं। –

+0

अब 2015 है। मुझे आश्चर्य है कि कुछ भी बदल गया है और अब इस सवाल का जवाब अलग होगा। सेवा प्रबंधन के लिए – wilx

उत्तर

4

Java Service Wrapper जो भी आप खोज रहे हैं हो सकता है। यह क्रॉस-प्लेटफॉर्म है, विंडोज़ सेवा के रूप में चीजों को शुरू करने, आईओ कैप्चर करने के लिए इस्तेमाल किया जा सकता है, और आमतौर पर किसी भी जावा ऐप को पूरी तरह से प्रबंधित करता है। यह बहुत हल्का वजन और अच्छी तरह डिज़ाइन किया गया है। एटलसियन इसका उपयोग अपने उत्पादों को लपेटने के लिए करता है (जिरा, बांस, आदि), इसलिए यह युद्ध का परीक्षण किया जाता है।

+2

यह ठीक है। लेकिन यह शायद ही एक पुस्तकालय है जिसका उपयोग आसान प्रक्रिया नियंत्रण के लिए किया जा सकता है। भी, यह काफी ओएसएस नहीं है। –

+0

@ ओमरी जेएसडब्ल्यू की एक बहुत अच्छी प्रक्रिया नियंत्रण पुस्तकालय है (http://wrapper.tanukisoftware.com/doc/english/child-exec.html), समस्या यह है कि यह ओएसएस नहीं है। – jnorris

13

कैसे Apache Commons Exec?

+1

अच्छी टिप - अच्छा ट्यूटोरियल भी! http://commons.apache.org/exec/tutorial.html – grrussel

+1

मुझे नहीं लगता कि अपाचे कॉमन्स एक्ज़ेक जावा सर्विस रैपर के समान अमूर्त स्तर प्रदान करता है। एक प्रक्रिया/डेमॉन प्रबंधक को लागू करने के लिए कॉमन्स एक्सेक एक अच्छी शुरुआत हो सकती है। –

3

एक और आवश्यकता ... अनाथ प्रक्रिया की हत्या के लिए क्रॉस प्लेटफार्म समर्थन। java.lang.Process (और अपाचे कॉमन्स एक्ज़ेक) के साथ, जब जावा एप्लिकेशन हार्ड स्टॉप करता है (kill -9) बाहरी प्रक्रियाओं को मारने का कोई तरीका नहीं है। मैं वास्तव में एक पुस्तकालय खोजना चाहता हूं जो समस्या को बेहतर तरीके से संभाल सके।

एक समाधान डिस्क पर कुछ संसाधनों में पीआईडी ​​स्टोर करने के लिए हो सकता है, और फिर जावा एप्लिकेशन को पुनरारंभ करने के लिए प्रक्रियाओं को मार सकता है। बेशक, यह मंच पर निर्भर होगा, इसलिए एक क्रॉस प्लेटफार्म लाइब्रेरी बहुत अच्छी होगी।

संबंधित मुद्दे