2013-04-14 4 views
8

मैं एक नामित स्क्रीन सत्र के अंदर एक प्रक्रिया लॉन्च करने के लिए एक स्क्रिप्ट तैयार कर रहा हूं।विशिष्ट स्क्रीन सत्र में ctrl-c भेजना

as_user "screen -p 0 -S **$command** -X eval 'stuff \"wine LFS.exe /cfg=**$command**.cfg\"\015'" 

तो bash myscript.sh start test एक स्क्रीन नामित परीक्षण बना सकते हैं और सॉफ्टवेयर के साथ test.cfg चलेंगे।

अब मैं मेरी स्क्रिप्ट विशिष्ट स्क्रीन सत्र का उपयोग और चल प्रक्रिया को रोकने के तो मैं स्क्रीन सत्र को मार सकता है एक CTRL + सी करना चाहते हैं।

कुछ इस तरह:

as_user "screen -p 0 -S **$command** **... kill the process with ctrl-c...**" 
as_user "screen -p 0 -S **$command** -X eval 'stuff \"exit\"\015'" 

उत्तर

13

मैं काफी आप लेकिन एक स्क्रीन सत्र में एक खिड़की को ctrl-c भेजने के लिए समझ में नहीं आता:

screen -S session_name -X at window_number stuff $'\003' 
# or 
screen -S session_name -X -p window_number stuff $'\003' 

आप भेजना चाहते हैं कुछ खिड़कियों के लिए कुछ, # (उद्धृत करने की आवश्यकता है) window_number के रूप में उपयोग करें।

अद्यतन:

स्क्रीन के stuff आदेश भी ^X (या ^x) का समर्थन करता है मतलब करने के लिए CTRL-X तो निम्न आदेश भी CTRL-C भेजने के लिए इस्तेमाल किया जा सकता।

screen -S session_name -X at window_number stuff ^C 
+1

काम करने के लिए at' प्राप्त नहीं कर सका ', लेकिन यह केवल सक्रिय विंडो है, जो किसी के लिए उपयोगी हो सकता है के लिए मेरे लिए काम किया:' स्क्रीन एस session_name -X सामान $ '\ 003'' –

+0

'स्क्रीन -एस session_name -X "#" सामान $ '\ 003'' पर' स्क्रीन-एस session_name -X quit' के साथ मेरे लिए सही काम करता है। मैं अब किसी भी स्क्रीन सत्र को मारने में सक्षम हूं। धन्यवाद। – puchu

संबंधित मुद्दे