बाहर से स्क्रीन सत्र के लिए इनपुट भेजना


18

मेरा परिदृश्य यह है:

मेरे पास एक दूरस्थ स्थान में एक स्क्रीन सत्र चल रहा है। इस स्क्रीन के अंदर एक सांत्वना आधारित कार्यक्रम है। जब स्क्रीन के बिना चलाया जाता है, तो यह प्रोग्राम टर्मिनल में शुरू होता है और इसके मानक इनपुट पर कमांड को स्वीकार करता है।

मैं जो चाहता हूं वह स्क्रीन पर कमांड को दूरस्थ रूप से भेजने का एक तरीका है ताकि यह कमांड कंसोल प्रोग्राम द्वारा प्राप्त हो। शायद इस तरह:

मेरा पीसी -> एसएसएच संदेश भेजें ऑटो -> स्क्रीन सत्र -> कार्यक्रम (रन कमांड प्राप्त)

इसलिए एक दूरस्थ पीसी से मैं एसएसएच कमांड के माध्यम से स्क्रीन पर भेज सकता हूं जो उन्हें प्रोग्राम में भेजता है। कार्यक्रम उन्हें स्वीकार करता है और उन्हें क्रियान्वित करता है।

जवाबों:


17

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

screen -S sessionname -p windowname -X stuff 'command1
command2
'

यदि आप प्रोग्राम का आउटपुट देखना चाहते हैं hardcopy, तो logऔर logfileकमांड देखें।


पहले से ही सामान कमांड की कोशिश की, लेकिन यह केवल स्क्रीन से ही कमांड भेजता है। आप देखते हैं कि यह केवल स्क्रीन से संबंधित आदेशों को स्वीकार करता है, न कि संबंधित प्रोग्राम का उपयोग कर रहा है।
लुइस अल्वाराडो

@CYREX: stuffअक्षर भेजता है, ठीक वैसे ही जैसे आपने उन्हें टाइप किया था। आपने वास्तव में क्या प्रयास किया, इसका क्या प्रभाव था, और इसके बजाय क्या हुआ?
गिल्स एसओ-

मुझे लगता है कि आप -p हिस्सा है। मेरे पास वह नहीं था। उस भाग को जोड़ा और वह अब कमांड भेज रहा है लेकिन मैं प्रत्येक कमांड के लिए ENTER कैसे दबा सकता हूँ?
लुइस अल्वाराडो 20

मिल गया। उद्धरणों से पहले एडिंट $ और इसमें सी की तरह बच निकलता है। जैसे यह -X सामान $ 'शो यूजर्स \ n'
लुइस अल्वाराडो 20

@CYREX: -pएक से अधिक विंडो होने पर आवश्यक है (या कम से कम एक अच्छा विचार)। "Enter दबाएं", बस तर्क में एक नई पंक्ति शामिल करें (जैसे उद्धरण के अंदर), जैसा कि मैंने किया है।
गाइल्स का SO-
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.