लिनक्स पर पृष्ठभूमि में जार चलाएं


12

मेरे पास एक जार है जो हमेशा के लिए चलता है (सॉकेट सुनने के धागे के साथ अनंत लूप) और इसे हर समय पृष्ठभूमि में चलाने की आवश्यकता होती है। एक उदाहरण होगा: "java -jar test.jar" मैं यह कैसे करूँ? अग्रिम में धन्यवाद!

जवाबों:


8

कई तरीके:

  1. जोड़कर &पीछे। हालाँकि, इसका उपयोग करते हुए, यदि आपने प्रोग्राम शुरू किया टर्मिनल बंद कर दिया है, तो प्रोग्राम अभी भी समाप्त हो जाएगा।

  2. एक screenसत्र शुरू करें , और इसके अंदर कार्यक्रम शुरू करें; आप screenसत्र को अलग कर सकते हैं और टर्मिनल बंद कर सकते हैं । बाद में, आप सत्र को फिर से संलग्न कर सकते हैं और अपने आप को कंसोल पर वापस पा सकते हैं जैसे कि आप सभी के साथ वहां गए हैं। हालाँकि, आपको प्रोग्राम चलाने से पहले स्क्रीन सेशन शुरू करना होगा, और यदि आप ऐसा करना भूल गए, तो आप इसके बारे में कुछ नहीं कर सकते।

  3. disownअपने शेल से नौकरी नियंत्रण का उपयोग करें । इससे आपके ट्टी से कार्य अलग हो जाएगा और ट्टी बंद होने पर आपका प्रोग्राम समाप्त नहीं होगा। हालाँकि, मुझे नहीं लगता कि कोई काम करने का कोई तरीका है।


13

एक कमांड लाइन प्रॉम्प्ट जो मैंने हमेशा लॉगऑफ के माध्यम से लंबे समय तक चलने के लिए उपयोग किया है, वह है "nohup" इसलिए आपके मामले में है

nohup java -jar test.jar &

यह महत्वपूर्ण है ताकि आप एक और शेल चला सकें। मेरा मानना ​​है कि यह रिबूट के माध्यम से नहीं चलेगा।


7

यदि "हर समय" से, तो इसका मतलब है कि यह मशीन के बूट होने पर शुरू हो जाता है, आपको इसे बूट-टाइम स्क्रिप्ट के भाग के रूप में शुरू करना होगा। ऐसा करने का गंदा तरीका जोड़ना है

जावा -जर टेस्ट.जर> / देव / अशक्त २> & १ &

/etc/rc.local (या अपनी पसंदीदा लॉग फ़ाइल के साथ / dev / null को बदलें)।

बेहतर एक init.d स्क्रिप्ट बनाने के लिए होगा जो उचित रनलेवेल्स पर शुरू हो जाता है (उदाहरण के लिए, आप इसे रनलेवल 0, 1 या 6 पर नहीं चाहते हैं)। इस तरह, आप भी इसे स्वचालित रूप से पुनरारंभ कर सकते हैं यदि यह मर जाता है और अस्थायी रूप से इसे रोकने के लिए एक अच्छा इंटरफ़ेस है।

Http://www.howtoforge.com/forums/archive/index.php/t-3628.html पर छोटे उदाहरण

Http://developer.novell.com/wiki/index.php/Writing_Init_Scripts पर बड़ी व्याख्या


एक और संभावना है, यदि आप चाहते हैं कि इसे केवल उपयोगकर्ता परमिटों के साथ चलाया जाए तो इसे क्रोन में रखा जाए और चलाने के समय के रूप में '@reboot' का उपयोग किया जाए। विवरण के लिए 'मैन 5 क्रॉस्टैब' देखें।
पंज

3
java -jar test.jar &

& ऑपरेटर प्रक्रिया को पृष्ठभूमि में चलने के लिए मजबूर करेगा, आप बाद में 'शीर्ष' कमांड को देख सकते हैं कि यह चल रहा है।


1

आप कमांड-लाइन के अंत में '&' प्रतीक को जोड़कर लिनक्स पर पृष्ठभूमि में किसी भी कार्य को चला सकते हैं, जैसे

java -jar test.jar &


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.