Nohup बनाम स्क्रीन


39

अतीत में, मैंने nohupबड़ी पृष्ठभूमि वाली नौकरियों को चलाने के लिए उपयोग किया है, लेकिन मैंने देखा है कि बहुत से लोग screenइस संदर्भ में उपयोग करते हैं । किसी screenप्रकार का कार्यात्मक लाभ प्रदान करता है जिससे मैं अनभिज्ञ हूं, या यह केवल वरीयता का मामला है?

जवाबों:


25

दोनों के अपने-अपने क्षेत्र और मंत्र हैं:

nohup:

  1. जब कोई प्रक्रिया किसी उपयोगकर्ता इनपुट की आवश्यकता नहीं होती है, तो वेब सर्वर या उसके बाद किसी अन्य सर्वर प्रक्रिया की आवश्यकता नहीं होती है, तो nohup पृष्ठभूमि में चलने वाली प्रक्रियाओं के लिए उपयोग करना अच्छा होता है।
  2. Nohup प्रक्रिया निष्पादन की निर्देशिका में लॉग बनाता है। लॉग फ़ाइल का नाम है nohup.out
  3. यह गलत Ctrl+ Cया समान कुंजी संयोजन के कारण मारे जाने की प्रक्रिया से बचा जाता है । बस एक सुरक्षा कवच।
  4. यह सामान्य रूप से मूल सेटअप के साथ डिफ़ॉल्ट रूप से स्थापित है। स्क्रीन की तरह अलग से स्थापित करने की आवश्यकता नहीं है।
  5. पृष्ठभूमि और डंपिंग आउटपुट में नौकरी चलाने के लिए इसकी कार्यक्षमता बहुत विशिष्ट है। कम स्मृति गहन।

स्क्रीन:

  1. अलग से स्थापित करने के लिए मिला। आप किसी डेटा सेंटर में नहीं जा सकते और किसी भी बॉक्स में प्रवेश नहीं कर सकते हैं और स्क्रीन मौजूद नहीं है।
  2. अलग-अलग विषयों पर कई टर्मिनलों का प्रबंधन करने और उन्हें नाम देने के लिए अच्छा है।
  3. इसके टर्मिनल मैनेजर के अधिक और नोह की तरह अनंत समय के लिए एक प्रक्रिया को चलाने के लिए एक कमांड नहीं।
  4. यदि प्रक्रिया को उपयोगकर्ता इनपुट की आवश्यकता है तो यह अधिक उपयुक्त है। जैसे स्क्रिप्ट स्थापित करें, हां / नहीं संकेत देता है।
  5. सुविधाओं के टन के साथ, इसकी स्मृति आती है। लेकिन सहमत, कुछ वास्तव में महान विशेषताएं हैं।

@ इल्मू, अगर मैं इसे मारना चाहता हूं तो मैं कभी भी अनुमान नहीं लगाऊंगा। किसी को मारने से पहले सुनिश्चित करें / कुछ;)।

स्क्रीन और nohup के लिए दोनों ही मामलों में सबसे अच्छा तरीका है: ps -eaf | grep "nohup" | grep "your proc name/keyword"

स्क्रीन का उपयोग करें और जांचें कि इस पर क्या चल रहा है।

निष्कर्ष निकालने के लिए, वे दो अलग-अलग चीजें हैं जो विभिन्न एजेंडों के साथ बनाई गई हैं, इसलिए तुलना करना मुश्किल है।


20

स्क्रीन में सुविधाओं की एक टन है। यह सिर्फ एक प्रक्रिया को "निष्क्रिय" नहीं करता है, यह टर्मिनलों के लिए एक खिड़की प्रबंधक के अधिक है।

इसका उपयोग किया जा सकता है यदि प्रक्रिया को किसी बिंदु पर इनपुट की आवश्यकता होती है, तो आप प्रक्रिया में जा सकते हैं और प्रक्रिया के आउटपुट की जांच कर सकते हैं, इसके टर्मिनल को फिर से कनेक्ट कर सकते हैं, ...

तो नहीं, यह केवल वरीयता की बात नहीं है, वे एक ही चीज नहीं हैं।


4
आप आउटपुट nohup [...] > fileName.log 2>&1को भी देख सकते हैं। प्लस इसका मतलब है कि आउटपुट खो नहीं है।
सरदारथियन - मोनिका

1
मुझे स्क्रीन का वह विवरण पसंद है: "टर्मिनलों के लिए एक विंडो प्रबंधक"!
रिकुमाली

7

screen अब तुम:

  1. वास्तविक चल रहे स्क्रीन पर वापस आएं, सिग्नल भेजें, देखें कि यह कितनी तेजी से जाता है, देखें कि क्या त्रुटि संदेश आदि हैं।
  2. एक सार्थक शीर्षक के साथ नाम प्रक्रियाओं। यदि आप एक प्रक्रिया को मारना चाहते हैं, तो आपको इसकी प्रक्रिया आईडी के बारे में अनुमान लगाने का काम नहीं करना है।

-2
  1. प्रक्रिया प्रगति nohupडेटाबेस फ़ील्ड डीबग द्वारा भी जाँच की जा सकती है ।
  2. ps ax | grep nohup आपको प्रक्रिया की आईडी दिखाएगा और आप इसे मार सकते हैं।
  3. nohupज्यादा तेज़ है। सरल कारण यह है कि यह आपके पीसी और सर्वर के बीच इंटरनेट कनेक्शन पर निर्भर करता है। जब भी इंटरनेट धीमा होता है, प्रक्रिया धीमी हो जाती है।

2
मुझे समझ नहीं आ रहा है। क्या आप विस्तृत कर सकते हैं?
मैट

1
बिंदु 2 गलत है।
जिगगंजर

# 2 केवल तभी मारने की प्रक्रिया दिखाएगा जब केवल एक nohup प्रक्रिया चल रही हो। और, यह कई दिखाएगा। किसी भी स्थिति में, बिंदु 2 पूरी तरह से गलत नहीं है।
अनिल_एम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.