फोंस के उत्तर पर अपनी टिप्पणी में, आप कहते हैं कि यह प्रयोग करते समय काम नहीं करता है screen
।
क्या आप इसे विस्तार से समझा सकते हैं? ओपनश के लिए सोर्स कोड को देखते हुए sshd कमांड को कॉल करके निष्पादित करता है
YOUR_DEFAULT_SHELL -c COMMAND
तो, उदाहरण के लिए, यदि आपके डिफ़ॉल्ट खोल है screen
, तो यह सब है कि अच्छी तरह से काम नहीं करेगा क्योंकि screen
के -c
ध्वज बस इसके ओवरराइड करता है .scrreenrc
। इसलिए, यदि आपकी डिफ़ॉल्ट शेल है तो स्क्रीन पर कमांड भेजने का वास्तव में कोई तरीका नहीं है। आपको वास्तव में ssh को दिए गए कमांड के रूप में स्क्रीन को चलाना होगा, लेकिन एक डिफ़ॉल्ट शेल के साथ जो स्क्रीन नहीं है ।
यदि आप ऐसा करने की कोशिश कर रहे हैं, तो मुझे लगता है कि चीजें वास्तव में अजीब लगेंगी, क्योंकि screen
गैर-संवादात्मक कार्यक्रमों के साथ खिड़कियां भी बंद हो जाएंगी, इसलिए आपको फोंस के समान चाल चलनी होगी, लेकिन एक स्तर गहरा होगा। SO, साथ, जैसे / बिन / बैश (और स्क्रीन नहीं) आपके डिफ़ॉल्ट शेल के रूप में कुछ इस तरह:
ssh user@host -t 'screen bash -l -c "ls;bash"'
जिसे गहरी सांस लेनी चाहिए - मेजबान में ssh, स्क्रीन के कमांड के साथ bash -c चलाएं, जो एक नई विंडो बनाएगा। यदि यह विंडो सिर्फ ls खोलती है, तो यह समाप्त हो जाएगी, और स्क्रीन समाप्त हो जाएगी, इसलिए हम नए स्क्रीन विंडो के अंदर फोंस की ट्रिक का उपयोग करते हैं ।
मुझे लगता है कि यह काम करेगा, अगर यह भी आप क्या करने की कोशिश कर रहे थे;)