क्या tmux पेन को "रीस्टार्ट" करने का एक आसान तरीका है?


48

मान लें कि मेरे पास tmux1.7 (1.7) विंडो स्प्लिट है:

 ________________________
|           1            |
|                        |
|-----------+------------|
|     2     |      3     |
|___________|____________|

अब, ऊर्ध्वाधर आकार को अनुकूलित किया गया है, इसलिए यह डिफ़ॉल्ट लेआउट में से किसी भी तरह से नहीं है।

इस अवसर पर, जब कोई प्रोग्राम अटक जाता है या जब आप किसी मशीन को रिबूट करते हैं जिससे आप जुड़े होते हैं ssh, तो फलक "हैंग" होता है। यानी kill-paneकाम के अलावा और कुछ नहीं दिखता।

हालाँकि, जब 1 # kill-paned हो गया है तो विभाजन कॉन्फ़िगरेशन के ऊपर पुनर्निर्माण का कोई आसान तरीका नहीं है , मैं इसे "पुनः आरंभ" करना चाहूंगा।

जवाबों:


82

मैनुअल को देखते हुए, कमांड ने respawn-paneमुझे मारा, लेकिन यह पता चला कि यह काम नहीं करता था। अधिक बारीकी से पढ़ना, यह पता चला कि respawn-pane -kयह उत्तर था, क्योंकि यह रनिंग कमांड को मार देगा ।

इस तरह एक फलक को "पुनः आरंभ" किया जा सकता है और जगह-जगह नए सिरे से बनाया जा सकता है।

तो <prefix>+ :और फिर दर्ज करें respawn-pane -kऔर दबाएंEnter


4
या बिना उपयोग करें -kयदि आपने remain-on-exitमोड में फलक बनाया है और कमांड को स्वयं मार दिया है।
पेट्रिफ़

क्योंकि तूने नए सिरे से पैदा की गई, आमीन
cambunctious

4

दरअसल, एक लेआउट के पुनर्निर्माण का एक तरीका है - list-windowsआपको एक सत्र में सभी खिड़कियों के लिए एक लेआउट विवरण देता है और select-layoutस्ट्रिंग को पचा सकता है और लेआउट को उचित रूप से सेट कर सकता है ( select-layoutमैन पेज में देखें tmux(1))।

आपकी ssh समस्या के रूप में - ssh सर्वरों को सिस्टम बंद होने के बाद कनेक्शन बंद कर देना चाहिए (हालाँकि मैंने कुछ लिनक्स वितरण देखे हैं जो किसी तरह ssh डेमॉन और रनिंग सेशन को ठीक से बंद न करके उचित व्यवहार गड़बड़ कर देते हैं) - यदि ऐसा है तो ESCAPE CHARACTERSअनुभाग देखें (और इसे संदर्भित करने वाले अन्य स्थान) ssh(1)- इसके बाद भागने वाला वर्ण .(एक बिंदु) बलपूर्वक ग्राहक की ओर से कनेक्शन को समाप्त कर देता है। निश्चित रूप से यह मदद नहीं करता है यदि आपने बस इसमें sshचलने के साथ फलक को जन्म दिया है, लेकिन यदि आप समस्या को अधिक बार अनुभव करते हैं, तो शायद आप फलक में एक शेल चलाना और उसमें से ssh को कॉल करना चाहेंगे।


मैंने आपके उत्तर को बदल दिया, क्योंकि यह मूल्य जोड़ता है। लेकिन यहाँ क्यों बच चरित्र जरूरी नहीं एक अच्छा विचार है: एक ssh सत्र का उपयोग करने के लिए एक tmux सत्र से जुड़ा है जिसमें ssh कनेक्शन खुला है। फिर आपको अचानक यह सोचने की ज़रूरत है कि पहले ssh कनेक्शन से परे भागने के चरित्र को कैसे भेजा जाए ताकि वह भीतर तक पहुंच सके। और btw, मैं आमतौर पर एक खोल से ssh चलाते हैं।
0xC0000022L

1
बहुत जब आप नेस्टेड tmux सत्र चला रहे हैं के रूप में एक ही बात है। बाहरी या आंतरिक सत्र में या तो आपके पास अलग-अलग एस्केप वर्ण हैं (जैसा कि यह ssh या tmux एक है) या आप केवल एस्केप कैरेक्टर को दो बार भेजते हैं - जो इसे नेस्टेड सेशन में एकल के रूप में जाता है (ssh के लिए हार्ड-वायर्ड व्यवहार, विन्यास योग्य) tmux में)।
पेट्रीफ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.