दूरस्थ यूनिक्स मशीन पर कमांड चलाने और कमांड पूरा होने से पहले बाहर निकलने के लिए मैं ssh का उपयोग कैसे कर सकता हूं?


17

मैं यूनिक्स मशीन पर कमांड चलाने और कमांड पूरा होने से पहले कैसे बाहर निकल सकता हूं?

उदाहरण के लिए, यदि मैं टाइप करता हूं

ssh localhost 'sleep 60 &'

ssh मेरे टर्मिनल पर तब तक लटका रहता है जब तक कि नींद पूरी नहीं हो जाती, भले ही नींद बैकग्राउंड में चलती हो।


आप शायद &उद्धरण के बाहर चाहते हैं ।
ब्रैड गिल्बर्ट

1
नहीं, यह पूरी किट और कबाड को पृष्ठभूमि में रखता है और मैं अपना पासवर्ड टाइप करने में असमर्थ हूं।
रिचर्ड हॉकिंस

जवाबों:


19

SSH में एक -f स्विच होता है जो आपके क्लाइंट पर nohup का उपयोग करने के समान है लेकिन यह संभव बनाता है कि ssh पासवर्ड मांगता है। इसे इस तरह उपयोग करें:

ssh localhost -f 'command'

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

ssh localhost -f 'screen -d -m sleep 60'

अगर मैं I ssh रीमोटेमाचिन -n ’लॉन्ग रनिंग कमांड> withremoteredirects 2> & 1 </ dev / null &’ कर देता हूं और क्लाइंट शट डाउन हो जाएगा तो कमांड पूरी हो जाएगी?
रिचर्ड हॉकिंस

अफाक नं। मैं ssh कनेक्शन खो गया है, ssh डेमॉन को "ssh" के अंदर सभी टर्मिनलों को समाप्त करना चाहिए। जब से टर्मिनल ने कमांड शुरू किया, तब से उन्हें समाप्त कर दिया जाएगा, क्योंकि उनकी मूल प्रक्रिया समाप्त हो गई थी। लेकिन यह कोशिश करने लायक है;)
मार्टिन

सर्वर साइड पर 'स्क्रीन' के बजाय 'nohup' के बारे में क्या?
रिचर्ड हॉकिंस

@ ब्रैड गिल्बर्ट कुछ नहीं? मैं कुछ चीजों के बारे में सोच सकता हूं, लेकिन एक चीज आम नहीं है, वह यह है कि सभी POSIX मशीनों पर 'स्क्रीन' उपलब्ध नहीं है।
रिचर्ड हॉकिंस


6

Nohup, stdout / stderr पुनर्निर्देशन का उपयोग करें, और पृष्ठभूमि में कमांड चलाएँ:

 nohup ssh localhost 'sleep 60' >/dev/null 2>/dev/null &

संपादित करें: या इससे भी बेहतर, बस ssh -f पैरामीटर का उपयोग करें:

ssh -f localhost 'sleep 60'

आप शायद दो पुनर्निर्देशों के साथ गठबंधन कर सकते हैं &>/dev/null
ब्रैड गिल्बर्ट

@ ब्रैडगिलबर्ट यह वाक्य रचना पोसिक्स-संगत नहीं है; कुछ पात्रों को बचाने के लिए अनुकूलता का त्याग करने के लिए तर्क करना कठिन है।
ट्रिपलआई

2

या उपयोग करने के बाद लॉगिन करें ssh, screenप्रगति या आउटपुट को देखने के लिए यदि आप बाद में वापस आना चाहते हैं , तो शुरू करें ।


आप "tmux" का भी उपयोग कर सकते हैं जिसे मैं व्यक्तिगत रूप से कॉन्फ़िगर करना आसान समझता हूं। दोनों आवेदन इसके पेशेवरों और विपक्ष होने के साथ बहुत अधिक समकक्ष हैं।
mzuther
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.