अपस्टार्ट स्क्रिप्ट बनाना चाहते हैं; मदद और सलाह की जरूरत है


13

एटीएम, मुझे बेतरतीब ढंग से शुरू करने और रोकने की जरूरत है (मेरे दिमाग में एक बेहतर शब्द की कमी के लिए)। मैं इसे टाइप करके शुरू करता हूं java -jar foo.jarऔर इसे रोकने के लिए इसका पता लगाता हूं और इसे मार देता हूं । इसे मारने से कोई भी वित्तीय नुकसान या भ्रष्टाचार या कुछ भी नहीं होता है, सिर्फ FYI करें। इन दोनों चरणों को करने के लिए इसका थकाऊ क्योंकि पहले आदेश को एक विशेष निर्देशिका से निष्पादित किया जाना है, अर्थात /usr/share/jetty(कहीं से भी हत्या को अंजाम दिया जा सकता है)।

तो मैं की तर्ज पर कुछ सोच रहा था

service foo startऔर service foo stopसेवाओं को शुरू करने और रोकने के लिए। क्या यह संभव है, और अधिक महत्वपूर्ण रूप से सही है? क्या कोई और उपाय है?

धन्यवाद।

जवाबों:


13

हाँ उपस्टार्ट इसके लिए एक बहुत अच्छा विकल्प है। बस एक नई फ़ाइल बनाएँ:

sudoedit /etc/init/my-jetty-jar.conf

आप जो चाहें उसे फ़ाइल नाम बदल सकते हैं, लेकिन फिर इसे इसमें चिपका सकते हैं:

description     "Run my jetty jar"

# no start option as you might not want it to auto-start
# This might not be supported - you might need a: start on runlevel [3]
stop on runlevel [!2345]

# if you want it to automatically restart if it crashes, leave the next line in
respawn

script
    cd /usr/share/jetty
    su -c "/usb/bin/java -jar /path/to/foo.jar" nobody
end script

उस बारे में कुछ नोट्स, मैं suसुरक्षा के लिए किसी के पास नहीं हूँ । आपको इसे suकिसी अन्य खाते में रखने की आवश्यकता हो सकती है, लेकिन यह संभवतः अनुशंसित नहीं है कि यह जैसा चलता है root


क्या परिवर्तनों को प्रभावी करने के लिए पुनरारंभ करना आवश्यक है? update-rc.dकाम नहीं किया /
theTuxRacer

आपको update-rc.dअपस्टार्ट नौकरियों की आवश्यकता नहीं है ।
ओली

Instart घड़ियों / etc / init का उपयोग कर inotify करता है, इसलिए यह आम तौर पर फाइलों के नीचे के सभी संपादन के बारे में जानता है। My स्टार्ट माय-जेट्टी-जार ’के अलावा कुछ करने की जरूरत नहीं। ओह, और @ ओली, आप निश्चित रूप से कोई शुरुआत के साथ एक नौकरी कर सकते हैं। ध्यान दें कि रनवे पर रुकना [! 2345] भविष्य में चीजों को रोकने के बुरे तरीके के रूप में फ़्लैग किया जा सकता है (क्योंकि यह गारंटी नहीं देता कि वे फाइल सिस्टम के सामने आने से पहले ही बंद हो जाएंगे)
SpamapS

दुर्भाग्य से, आपका समाधान Jetty 8 के लिए (अब) काम नहीं कर रहा है क्योंकि start.jar एक और प्रक्रिया को जन्म देता है, जो आपके दृष्टिकोण से नहीं मारा जाएगा। मैंने इस समस्या के समाधान के लिए एक और प्रश्न बनाया: stackoverflow.com/questions/10796242/…
सेबी

4
@ सेबी आपको बस expect forkवहां ( scriptशुरुआत से पहले ) छड़ी करने की आवश्यकता हो सकती है ।
ओली
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.