2011-11-17 16 views
11

के रूप में कमांड चला रहा है मेरे पास एक शेल कमांड है जिसे मैं पृष्ठभूमि में चलाने के लिए चाहता हूं और मैंने पढ़ा है कि यह & को कमांड के रूप में चलाने के लिए किया जा सकता है जो इसे चलाने के कारण होता है एक पृष्ठभूमि प्रक्रिया लेकिन मुझे कुछ और कार्यक्षमता की आवश्यकता है और यह सोच रहा था कि इसके बारे में कैसे जाना है:पृष्ठभूमि प्रक्रिया/सेवा

  1. मैं सिस्टम को पुनरारंभ होने पर पृष्ठभूमि में शुरू करने और चलाने के लिए आदेश चाहता हूं।
  2. मैं इसे शुरू करने और इसे रोकने में सक्षम होना चाहूंगा जैसे कि कोई भी service apache2 start कर सकता है।

मैं इस बारे में कैसे जा सकता हूं? क्या कोई ऐसा उपकरण है जो मुझे सेवा के रूप में कमांड चलाने की अनुमति देता है?

मैं इसके साथ थोड़ा खो गया हूं।

धन्यवाद

+0

एक [डेमॉन] FYI करें, एक यूनिक्स "सेवा" आम तौर पर कहा जाता है (http://en.wikipedia.org/wiki/Daemo n_% 28computing% 29) - यह जानना आपको जानकारी को अधिक आसानी से ढूंढने में मदद कर सकता है। – Sorpigal

उत्तर

20

daemon कमांड पर एक नज़र डालें, जो मनमानी प्रक्रियाओं को डेमॉन में बदल सकता है। यह आपकी स्क्रिप्ट को बिना अतिरिक्त काम करने की आवश्यकता के एक डिमन के रूप में कार्य करने की अनुमति देगा। अगला चरण बूट पर स्वचालित रूप से इसे आमंत्रित करना है। ऐसा करने का सही तरीका जानने के लिए, आपको अपना ओएस (या, लिनक्स के लिए, अपना वितरण) प्रदान करना होगा।

+0

चीयर्स Sorpigal। इससे मदद मिली। –

+0

हाय Sorpigal। मुझे पता है कि मैंने पहले से ही यह जवाब स्वीकार कर लिया है, लेकिन क्या आप बता सकते हैं कि मैं स्टार्टअप पर कैसे शुरू कर सकता हूं। मैं उबंटू 10.4 पर हूं। धन्यवाद। –

+1

@ मिरंगअगरवाला: मैं उबंटू की नई इनिट सिस्टम से बहुत परिचित नहीं हूं, लेकिन [यहां आज़माएं] (https://help.ubuntu.com/community/UbuntuBootupHowto) और लेखन सेवा अनुभाग में अपना डिमन आमंत्रण डाला जहां यह कहता है ' echo "यहां बैश कोड रखें" ' – Sorpigal

20

यूनिक्स प्रणालियों आप एक साथ की जरूरत के रूप में (सिर्फ नए खोल विंडो खोलने यदि आप एक जीयूआई में हैं), तो पृष्ठभूमि में एक चल रही प्रक्रिया को केवल आवश्यक अगर तुम करने की जरूरत है के रूप में कई प्रक्रियाओं संभाल कर सकते हैं एक बार जब आप एक एप्लिकेशन या प्रक्रिया चलाते हैं जो चलती रहती है तो अन्य चीजों के लिए वर्तमान खोल विंडो का उपयोग करने पर।

एक कमांड पृष्ठभूमि मोड में आदेश कहा जाता है चलाने के लिए, आप उपयोग करेंगे:

command & 

यह एक विशेष चरित्र है कि आप कमांड प्रॉम्प्ट पर लौट आता एक बार प्रक्रिया शुरू कर दी है। अन्य विशेष पात्र हैं जो अन्य चीजें करते हैं, अधिक जानकारी here उपलब्ध है।

+7

सोर्गिगल के समाधान का उपयोग करने का लाभ यह है कि आप टर्मिनल/खोल प्रक्रिया को बंद कर सकते हैं, और प्रक्रिया चलती रहेगी। यह मामला उपयोग नहीं कर रहा है, क्योंकि प्रक्रिया विशेष खोल प्रक्रिया से जुड़ी हुई है, और यदि खोल प्रक्रिया करता है तो बाहर निकलता है। – metasoarous

+2

खोल खोलने के बाद 'कमांड' चलाना जारी रखने के लिए, 'नोहप कमांड' और ' – rem

1

बैश के साथ उन्नत नौकरी नियंत्रण के लिए, आपको jobsbg और fg आदेशों को देखना चाहिए।

हालांकि, ऐसा लगता है कि आप पृष्ठभूमि में कमांड चलाने में वास्तव में रूचि नहीं रखते हैं। आप क्या करना चाहते हैं स्टार्टअप पर कमांड लॉन्च करें। ऐसा करने का तरीका आपके द्वारा उपयोग किए जाने वाले यूनिक्स सिस्टम के आधार पर भिन्न होता है, लेकिन rc फ़ाइलों के परिवार (/etc/rc.local उदाहरण के लिए उबंटू पर) देखने का प्रयास करें। उनमें स्क्रिप्ट शामिल हैं जो इनिट स्क्रिप्ट के बाद निष्पादित की जाएंगी।

+0

का उपयोग करें, मुझे पता है कि यह ओपी के लिए समाधान नहीं है, लेकिन अगर कोई इस उत्तर से स्विंग करता है, तो यह जानना उपयोगी होता है कि आप नौकरियों को" अस्वीकार कर सकते हैं " और खोल निकलने के बाद भी वे पृष्ठभूमि में चलते रहेंगे। –

3

इस लेख के आधार पर: screen manual से

screen -d -m -s "my session name" <command to run> 

:
http://felixmilea.com/2014/12/running-bash-commands-background-properly/

... एक और अच्छा तरीका screen जैसे के साथ है में

-d -m
प्रारंभ स्क्रीन अलग मोड यह एक नया सत्र बनाता है लेकिन इससे जुड़ा नहीं है। यह सिस्टम स्टार्टअप स्क्रिप्ट के लिए उपयोगी है।

यानी आप अपने टर्मिनल बंद कर सकते हैं, इस प्रक्रिया (& साथ के विपरीत)

screen साथ

तुम भी, जबकि/dev को उत्पादन निर्देशन बाद में

0

उपयोग nohup सत्र के लिए पुनः अनुलग्न कर सकते हैं चलते रहेंगे/बातिल

nohup command &>/dev/null &

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