लॉग इन न करते हुए रिमोट टर्मिनल पर बैश स्क्रिप्ट छोड़ें?


14

मेरे पास एक बैश स्क्रिप्ट है जिसे चलाने में कई घंटे लगते हैं। जबकि यह चल रहा है, मैं अन्य चीजें करना चाहूंगा, जिसमें इंटरनेट से लॉग आउट करना या डिस्कनेक्ट करना शामिल हो सकता है (मेरी स्क्रिप्ट विभिन्न कंप्यूटरों पर नेटवर्क परीक्षण चलाता है)।

मैं समझता हूं कि एक कमांड है जो मुझे रिमोट टर्मिनल से अपने परीक्षण चलाने और टर्मिनल के लॉगआउट करने की अनुमति देगा, जबकि यह चलता है। क्या किसी को पता है कि यह कमान क्या है?

जवाबों:


17

जिस कमांड को आप देख रहे हैं वह है nohup

वहाँ भी है screen, जो तब होता है जब आप कुछ छोड़ कर भागना चाहते हैं, लेकिन बाद में वापस आते हैं और अंतःक्रिया करते हैं।

nohupयदि कोई कमांड लॉन्च के बाद कोई उपयोगकर्ता इनपुट की अपेक्षा करता है, तो यह सरल है, और screenयदि आप प्रोग्राम को अंतःक्रियात्मक रूप से चलाने में सक्षम होना चाहते हैं तो बेहतर है।


मैं अभी nohup को देखा और जाहिरा तौर पर इनपुट और आउटपुट के मुद्दे हैं जो स्क्रिप्ट को लटका देने का कारण हो सकते हैं। मैंने स्क्रीन के बारे में भी कुछ देखा, जो मुझे पहले के बारे में पढ़ी गई बातों की तरह प्रभावित करता है। क्या आप जानते हैं कि इनमें से किसी का उपयोग कैसे करें?
ऋत्विक बोस

1
nohup तब होता है जब कोई स्क्रिप्ट कोई उपयोगकर्ता इनपुट की उम्मीद करती है - यह एक फ़ाइल के लिए सभी आउटपुट बचाता है। स्क्रीन तब होती है जब आप कुछ चालू छोड़ना चाहते हैं, लेकिन बाद में इंटरएक्टिव तरीके से वापस आ जाते हैं। यदि कोई कमांड लॉन्च के बाद कोई उपयोगकर्ता इनपुट की उम्मीद करता है, तो nohup सरल है, और यदि आप प्रोग्राम को अंतःक्रियात्मक रूप से चलाने के लिए योग्य होना चाहते हैं तो स्क्रीन बेहतर है।
जस्टिन स्मिथ

आह मिल गया। स्क्रीन के लिए, यह ctrl-A d to detach and -r + pid to reattach है।
ऋत्विक बोस

अच्छा उत्तर। आपको अपने उत्तर के लिए स्क्रीन टिप्पणी को जोड़ना चाहिए ताकि यह अधिक से अधिक खड़ा हो।
डेवपैरिलो

1

मैं इसके लिए उपयोग करता हूं nohup। मेरे मामले में मेरे पास एक पायथन स्क्रिप्ट थी, जिसका नाम action.py मैंने स्क्रिप्ट को रिमोट सर्वर पर चलाया, जिसके साथ nohup python action.py & मैं टर्मिनल को बंद कर दूंगा। बाद में जब यह चलना समाप्त हो जाता है, तो आप उस प्रक्रिया से सभी आउटपुट देख सकते हैं nohup.outजिसमें उसी निर्देशिका में बनाया जाएगा action.py। यदि फ़ाइल पहले से मौजूद है तो आगे आउटपुट को जोड़ा जाएगा।

एकमात्र स्नैग को यह पता नहीं है कि स्क्रिप्ट ने अपना पाठ्यक्रम कब चलाया है, इसलिए मेरे मामले में मुझे यह पूरा होने पर एक ईमेल शूट करना था। आशा है कि यह किसी की मदद की!


0

यदि आप nohupअपने कमांड की शुरुआत में कमांड जोड़ना भूल गए तो क्या होगा ?

हम कहते हैं कि आपने निम्नलिखित लंबी कमान चलाई है:

एक लंबे कमांड के आउटपुट की शुरुआत

इसे ऐसा कहा जाता है ls -Ral /कि सभी फाइलों और सभी फोल्डरों को सूचीबद्ध करना है, जिनमें छिपे हुए हैं, एक लंबे प्रारूप के साथ, फिर से रूट फ़ोल्डर से शुरू होता है। इसमें समय लग सकता है।

बस ctrl+ दबाएं Z

लांग कमांड को रोकना

आप इसे वापस कैसे प्राप्त करेंगे?

इसे फोरग्राउंड में वापस लाने की कमांड है fg

आज्ञा वापस लाना

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