मुझे "nohup" का उपयोग कब करना चाहिए, और मुझे "&" का उपयोग कब करना चाहिए?


16

मुझे कभी नहीं पता है कि कमांड के अंत में nohup और & का उपयोग करने का सबसे अच्छा समय कब है।

जवाबों:


20

Nohup एक प्रोग्राम को HUP सिग्नल की अनदेखी करता है, जिससे यह चालू टर्मिनल बंद होने के बाद चलने की अनुमति देता है / उपयोगकर्ता लॉग आउट होता है। Nohup पृष्ठभूमि के लिए कार्यक्रम नहीं भेजता है।
& कमांड के अंत में शेल जॉब कंट्रोल से संबंधित है, जिससे उपयोगकर्ता को वर्तमान शेल सत्र में काम जारी रखने की अनुमति मिलती है।
आमतौर पर नोह और & को लॉन्च प्रोग्राम के साथ जोड़ा जाता है जो उपयोगकर्ता के लॉगआउट के बाद चलता है और वर्तमान शेल सत्र में काम जारी रखने की अनुमति देता है।


13

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

xcalc &
rdesktop 1.2.3.4 & 
./this_only_takes_a_few_seconds_but_i_want_my_shell_back.py &

वीपीएन या डोडी रिमोट कनेक्शन पर काम करते समय, मैं nohupकुछ भी चलाने के लिए उपयोग करता हूं, जिसे चलाने में कुछ समय लगेगा। जब एक दूरस्थ होस्ट पर बड़े डेटा आयात चलाते हैं, उदाहरण के लिए, आप यह nohupसुनिश्चित करने के लिए उपयोग कर सकते हैं कि डिस्कनेक्ट होने पर आपके द्वारा पुन: कनेक्ट करने पर आपके पास प्रारंभ नहीं होगा।

nohup ./do_data_load.py mydatafile.txt &

इसका उपयोग तब भी किया जाता है जब कोई डेवलपर किसी सेवा को ठीक से नहीं करता है, इसलिए आपको nohupयह सुनिश्चित करने के लिए उपयोग करना होगा कि जब आप लॉग आउट करते हैं तो यह मारा नहीं जाता है।

nohup sillyd &

यदि आप nohupपिछले दो उदाहरणों की तरह किसी चीज़ को चलाते समय उपयोग करना भूल जाते हैं, तो आप disownउसी प्रभाव के लिए बाश या ज़ीश बिलिन का उपयोग कर सकते हैं ।

$ sillyd &
[1] 12345            # Whoops!
$ disown %1

यह बहुत दुर्लभ है nohupबिना उपयोग के &, क्योंकि आप वास्तव में nohup'd सत्र के लिए reattach कर सकते हैं यदि आप लॉग आउट हैं। यह बहुत ही इंटरैक्टिव कमांड के लिए इसकी उपयोगिता को समाप्त करता है। उस स्थिति में जहां आपके पास एक इंटरैक्टिव कमांड है जिसे आप सत्रों पर बने रहना चाहते हैं या जटिल डिस्कनेक्ट से बचना चाहते हैं, आप उपयोग कर सकते हैं screen। पूरी तरह से सशस्त्र और परिचालन screenसत्र की मारक क्षमता इस पद के दायरे से बाहर है , इसलिए आपको इसे और अधिक विस्तार से जांचना चाहिए ।


मुझे tmux को स्क्रीन की तुलना में कॉन्फ़िगर और उपयोग करना आसान लगता है। साथ ही बीएसडी को लाइसेंस दिया।
क्रिस्टैप्स

1
आप byobuस्क्रीन पर कुछ अच्छे फीचर्स जोड़ सकते हैं। यह Red Hat के लिए सबसे उपयुक्त रिपोज और EPEL रिपोज में उपलब्ध है।
जेम्स

0

nohup: वर्तमान उपयोगकर्ता को लॉगआउट करें, प्रक्रिया बंद नहीं होगी

&: इस प्रतीक के साथ, वर्तमान टर्मिनल में कोई आउटपुट नहीं होगा, प्रक्रिया चल पृष्ठभूमि


4
अभी भी हम आउटपुट हैं, जैसा कि standart आउटपुट और एरर स्ट्रीम को हटाता नहीं है। आपको स्ट्रीम पुनर्निर्देशन का उपयोग करना होगा, जैसे (bash में) कमांड> / dev / null 2> 1
क्रिस्टैप्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.