प्रशासनिक विशेषाधिकारों के साथ स्टार्टअप पर टॉमकैट शुरू करें


23

मुझे सिस्टम में लॉग इन करने से पहले एक प्रक्रिया चलाने की आवश्यकता है। इसे सेवाओं की तरह कैसे चलाएं? मैं लिनक्स में सेवाएं कैसे करूं?

उबंटू और फेडोरा में? सेवा को कस्टमाइज़ किया गया है


6
लिनक्स डिस्ट्रो पर किस तरह से सेवाएं शुरू होती हैं। कृपया हमें बताएं कि आप क्या (और किस डिस्ट्रो और शायद डेस्कटॉप पर्यावरण पर) पूरा करने की कोशिश कर रहे हैं, क्योंकि अभी मुझे लगता है कि आप शायद समस्या के बारे में सही नहीं सोच रहे हैं।
xenoterracide

जवाबों:


23

सिस्टम में लॉग इन किए बिना या उससे पहले एक सेवा चलाने के लिए (यानी "बूट पर"), आपको एक स्टार्टअप स्क्रिप्ट बनाने और इसे बूट अनुक्रम में जोड़ने की आवश्यकता होगी।
सेवा स्क्रिप्ट के तीन भाग हैं: प्रारंभ, रोकें और पुनः आरंभ करें।
सेवा स्क्रिप्ट की मूल संरचना है:

#!/bin/bash
#
RETVAL=0;

start() {
echo “Starting <Service>”
}

stop() {
echo “Stopping <Service>”
}

restart() {
stop
start
}

case “$1″ in
start)
  start
;;
stop)
  stop
;;
restart)
  restart
;;
*)

echo $”Usage: $0 {start|stop|restart}”
exit 1
esac

exit $RETVAL  

एक बार जब आप स्क्रिप्ट को अपनी पसंद के अनुसार बदल देते हैं, तो बस इसे /etc/init.d/ में रखें
, और, इसे सिस्टम सेवा स्टार्टअप प्रक्रिया में जोड़ें (फेडोरा पर, मैं एक Ubuntu उपयोगकर्ता नहीं हूं,> D):

chkconfig -add <ServiceName>  

सेवा को बूट अप प्रक्रिया में जोड़ा जाएगा और आपको इसे फिर से शुरू नहीं करना पड़ेगा।

चीयर्स!


2
ध्यान दें कि साधारण इनिट स्क्रिप्ट के लिए प्रारंभ, रोक और पुनरारंभ आमतौर पर पर्याप्त हैं। आप शायद 'स्टेटस' एक्शन को भी शामिल करना चाहते हैं, जो डेबियन और अन्य डिस्ट्रोस में आसान है जिसमें स्टेटस -ऑफ_प्रोस्क () इसके इनिट-फंक्शन पैकेज में शामिल हैं। अच्छी तरह से प्रबंधित संकुल में LSB ( refspecs.freestandards.org/LSB_3.1.0/LSB-Core-generic/… ) द्वारा आवश्यक सभी कार्य शामिल होंगे । उबंटू में टॉमकैट के साथ वितरित इनिट स्क्रिप्ट में ये सभी क्रियाएं शामिल हैं, शायद यह सिर्फ इसका उपयोग करने के लिए शर्त है।
स्टीवन डी

19

Init सिस्टम के आधार पर, आप init स्क्रिप्ट को अलग तरह से बनाते हैं। फेडोरा आपको चुनने के लिए अपस्टार्ट और सिस्टमड देता है, और निश्चित रूप से SysV संगतता।

कल का नवाब

  • के रूप में सेवा परिभाषा फ़ाइल बनाएँ /etc/init/custom-tomcat.conf
  • अंदर डालो:

    start on stopped rc RUNLEVEL=3
    respawn
    exec /path/to/your/tomcat --and --parameters
    

और आपका टॉमकैट सिस्टम स्टार्ट पर शुरू होना चाहिए।

systemd

  • में सेवा परिभाषा बनाएँ /etc/systemd/system/custom-tomcat.service
  • अंदर डालो:

    [Service]
    ExecStart=/path/to/your/tomcat --and --parameters
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    

और अपनी सेवा का उपयोग करके सक्षम करें systemctl enable custom-tomcat.service। इसे हर सामान्य बूट में शुरू किया जाएगा।

बेशक दोनों init सिस्टम के लिए कुछ और विन्यास विकल्प हैं, आप उनके प्रलेखन में जाँच कर सकते हैं।


7

टॉम्कट एक काफी सामान्य सेवा है, मैं पहले से ही डिस्ट्रो द्वारा प्रदान की गई इनइट स्क्रिप्ट को देखने की सलाह दूंगा। संभावना है कि यह आपके कस्टमाइज्ड बाइनरी के साथ काम करता है, जिसमें कोई ट्विकिंग नहीं होती है।


6

यदि आपके पास cronडेमॉन है, तो पूर्वनिर्धारित क्रोन समय हुक में से एक है @reboot, जो स्वाभाविक रूप से सिस्टम शुरू होने पर चलता है। crontab -eअपनी crontabफ़ाइल संपादित करने के लिए चलाएँ , और एक पंक्ति जोड़ें:

@reboot /your/command/here

क्या यह सभी स्टार्टअप पर लागू होता है, या सिर्फ रीबूट होता है?
WhyNotHugo

यह केवल fcron पर लागू होता है - विक्सी-क्रॉन या किसी अन्य क्रोन AFAIK पर नहीं।
मैकीज पीचोटका

@ मैकीज यह निश्चित रूप से विक्सी-क्रोन के लिए काम करता है; कि मैं क्या उपयोग है
माइकल Mrozek

@Hugo सभी startups
माइकल Mrozek

6

कंप्यूटर शुरू होने के बाद केवल एक स्क्रिप्ट चलाने के लिए, लेकिन उपयोगकर्ता लॉग इन करने से पहले, आप बस स्क्रिप्ट /etc/rc.local को संपादित कर सकते हैं, जो कि वास्तव में इस कार्य को हल करने के लिए है।


3

आप एक अधिक परिष्कृत स्क्रिप्ट बना सकते हैं, जो आपको एक विशिष्ट उपयोगकर्ता की अनुमति के तहत चलने की अनुमति देता है, इस प्रकार है:

#!/bin/sh
NAME=myservice
DESC="My Service"
USERGROUP="myservice:myservice"

#Helper functions
start() {
        start-stop-daemon --start --quiet --background --make-pidfile \
                --pidfile /var/run/$NAME.pid --chuid $USERGROUP \
                --exec /usr/local/bin/myservice
}

stop() {
        start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
                --exec myservice --retry 30
}

case "$1" in
  start)
        echo -n "Starting $DESC: "
        start
        echo "$NAME."
        ;;
  stop)
        echo -n "Stopping $DESC: "
        stop
        echo "$NAME."
        ;;
  restart)
        echo -n "Restarting $DESC: "
        #set +e
        stop
        #set -e
        #sleep 1
        start

        echo "$NAME."
        ;;
  *)
        N=/etc/init.d/$NAME
        echo "Usage: $N {start|stop|restart}" >&2
        exit 1
        ;;
esac

exit 0

स्क्रिप्ट /etc/init.d/myservice में जाती है, और आप सेवा को निष्पादित करके शुरू करते हैं:

/etc/init.d/myservice start

यह कैसे काम करता है यह समझने के लिए स्टार्ट-स्टॉप-डेमन पर मैन पेज पढ़ें।


1

उबंटू या डेबियन में जैसे आप उपयोग कर सकते हैं, जोड़ने के लिए

update-rc.d your_service defaults

हटाना

update-rc.d -f your_service remove

अलविदा! \ o

कार्यों की स्थिति को लागू करने के लिए अच्छा है और बल-पुनः लोड करना LSB-compilant है


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