Nohup ssh पर नहीं लौटेगा


11

मैं करने की कोशिश कर रहा हूं

[me@myPc]$ ssh me@server "nohup myBashScript.sh &"

मेरा लक्ष्य सर्वर पर प्रक्रिया लॉन्च करना है, और फिर तुरंत वापस लौटना है।

यह काम नहीं कर रहा है: सर्वर पर काम शुरू हो गया है, लेकिन मैं अभी भी myPc पर आउटपुट प्राप्त करता हूं और किसी अन्य कमांड के लिए मुझसे पूछने से पहले पूरा होने का इंतजार करता हूं।

क्यों ? यह नहीं माना जाता है! किसी भी तरह से बचने के लिए?

  • myPc है RHEL6.2
  • सर्वर है ubuntu 10.04और
  • दोनों चलाता है openssh

जवाबों:


12

जब तक इनपुट या आउटपुट अभी भी खुले हैं, ssh कनेक्शन को खुला रखेगा। इसे हल करने के लिए, सुनिश्चित करें कि इनपुट और आउटपुट खुले नहीं हैं।

उदाहरण के लिए, ssh -nअपने आउटपुट का उपयोग और पुनर्निर्देशित करें:

ssh -n me@example.com "nohup myscript.sh >/dev/null 2>&1 &"

क्या होगा यदि मैं अभी भी myscript.shमुझे आउटपुट देना चाहता हूं, लेकिन स्क्रिप्ट पूरी होने के बाद भी ssh सत्र समाप्त होना चाहिए? मेरे मामले में, स्क्रिप्ट अपने आप में nohup प्रक्रिया शुरू करती है, फिर वापस आती है। मैं इस धारणा के तहत था कि ssh -Tमुझे ऐसा करने में मदद मिलेगी।
गौतियर

@ गौथियर तो बस स्क्रिप्ट को बिना नोक के चलाते हैं।
माइकल हैम्पटन

मैं करता हूँ। स्क्रिप्ट नोह और के साथ अन्य कमांड शुरू करती है, और फिर समाप्त हो जाती है। लेकिन ssh नहीं लौटा। स्क्रिप्ट में कहे जाने वाले कमांड फाइलों में स्टडआउट को रीडायरेक्ट करते हैं। ओह, लेकिन stderr और stdin नहीं, क्या ऐसा हो सकता है?
गौथियर

ये लो! इनपुट और आउटपुट को पुनर्निर्देशित किया जाना चाहिए।
माइकल हैम्पटन

जो मुझे समझ में नहीं आता है कि अगर मैं वास्तव में लॉगिन करता हूं और एक tty मिलता है, तो स्क्रिप्ट शुरू करें जो nohup और कमांड शुरू करता है, तो मुझे ssh सत्र से लॉगआउट करने की अनुमति है। यह शिकायत नहीं करता है कि खुले इनपुट और आउटपुट हैं। ऐसा नहीं है कि क्या ssh -tनकल करना चाहिए?
गॉथियर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.