2012-09-30 7 views
6

मैं सर्वर कंसोल चलाने के लिए tmux का उपयोग कर रहा हूं। कंसोल का जवाब दे रहा है या नहीं इसकी जांच करने के मैं कंसोल पर एक कमांड को चलाने के लिए send-keys उपयोग करना चाहते हैं:tmux में send-keys का परिणाम कैसे प्राप्त करें?

tmux send-keys -t mysess:mywin "show info" Enter 

(वास्तव में, मैं वर्तमान में एक फाइल करने के लिए पूर्ण उत्पादन सांत्वना लॉगिन कर रहा हूं और अंतिम पंक्ति को पढ़ने, लेकिन मुझे आशा है कि एक बेहतर समाधान मौजूद है।)

tmux pipe-pane -o -t mysess:mywin 'cat >> mysess-mywin.log' 
+0

प्रयास करें - यह दूसरों की मदद करेगा अपने प्रश्न और उत्तर खोजने के लिए यह। [tmux] टैग में केवल 75 अनुयायियों हैं। – Artemix

+0

आपको 'शो जानकारी' का आउटपुट दिखाई नहीं देगा, क्योंकि यह 'mysess: mywin' में दिखाई देगा, न कि विंडो जहां आपने' send-keys 'कमांड निष्पादित किया था। – chepner

उत्तर

0

एक ही विकल्प है कि 'शो की जानकारी' चलाता भेजने-कुंजी के साथ एक स्क्रिप्ट कॉल और स्क्रिप्ट 'भेज कुंजी' tmux सत्र के लिए वापस परिणाम है आप शूरू हो गए। यह केवल तभी काम करता है जब आप टीएमयूक्स में शुरुआत कर रहे हों।

4

कैसे आप उत्पादन तक पहुँच रहे हैं प्रभावित करेगा कि क्या यह समाधान अच्छा है या नहीं है, लेकिन यह काम हो सकता है के संदर्भ:

tmux send-keys -t <session:win.pane> '<command>' Enter 
tmux capture-pane -t <session:win.pane> 
tmux show-buffer 

आप और capture-pane की -E विकल्पों -S साथ खेलने के लिए सक्षम होना चाहिए, , आउटपुट को सटीक रूप से कैप्चर करने के लिए, फलक के आकार के साथ-साथ। यदि आप इतने इच्छुक हैं, तो आप show-panes और फलक की ऊंचाई को कैप्चर करने के लिए एक छोटा regexp भी उपयोग कर सकते हैं, और फिर केवल अंतिम पंक्ति को कैप्चर करने के लिए -S <height - 1> का उपयोग करें।

यह बहुत की तरह एक अन्य कार्यक्रम से पढ़ने के लिए तो आसान है (जैसे, अजगर में): ओएस प्रयोग कर रहे हैं के लिए टैग को जोड़ने के लिए

print Popen(['tmux', 'show-buffer'], stdout=PIPE).communicate()[0] 
संबंधित मुद्दे