सवाल एक tmux सत्र को अलग कैसे करें जो स्वयं पहले से ही tmux में है?


मैंने अपनी स्थानीय मशीन पर एक tmux सत्र खोला है, और रिमोट मशीन पर ssh खोल दिया है। इसके बाद, मैंने दूरस्थ मशीन पर "tmux attach" कमांड टाइप किया, फिर मुझे अपने स्थानीय tmux सत्र पर एक दूरस्थ tmux सत्र मिला।

अब मैं रिमोट tmux sesstion को अलग करना चाहता हूँ, मैंने कोशिश की है

C-b d

लेकिन यह रिमोट एक के बजाय मेरे स्थानीय tmux सत्र अलग किया।

मैं रिमोट tmux sesstion कैसे अलग कर सकते हैं?


82
2018-02-24 03:10


मूल




जवाब:


C-b C-b d

(डिफ़ॉल्ट बाइंडिंग मानते हुए)

सबसे पहला सी-ख आपके स्थानीय द्वारा व्याख्या की गई है tmux (क्योंकि यह आपके सभी कीस्ट्रोक देखने वाला पहला व्यक्ति है)। दूसरा सी-ख एक ऐसा आदेश है जो आपके स्थानीय tmux को भेजने का कारण बनता है सी-ख अपने सक्रिय फलक के लिए; यह उत्पन्न हुआ सी-ख रिमोट पर आता है tmux स्थानीय के माध्यम से गुजरता है tmux अपरिवर्तित; जब यह रिमोट पर जाता है tmux यह ट्रिगर करता है detach आदेश।

  1. आप लिखें सी-ख
    आपका स्थानीय tmux इसे उपसर्ग कुंजी के रूप में व्याख्या करता है; स्थानीय के तहत चल रही प्रक्रियाओं को कुछ भी नहीं भेजा जाता है tmux
  2. आप लिखें सी-ख
    आपका स्थानीय tmux यह इसके लिए बाध्य है send-prefix आदेश।
    1. आपका स्थानीय tmux भेजता है सी-ख सक्रिय फलक में चल रही प्रक्रिया के लिए (ssh)।
    2. ssh इसके बाद (के माध्यम से sshd, आदि) रिमोट एंड पर चल रही प्रक्रिया के लिए (रिमोट tmux)।
      आपका रिमोट tmux इसे उपसर्ग कुंजी के रूप में व्याख्या करता है; रिमोट के नीचे चल रही प्रक्रियाओं को कुछ भी नहीं भेजा जाता है tmux
  3. आप लिखें
    आपका स्थानीय tmux इसे सामान्य रूप से गुजरता है (दूसरे के बाद से सी-ख स्थानीय के लिए एक पूर्ण कमांड कुंजी अनुक्रम समाप्त किया tmux)।
    आपका रिमोट tmux यह बाध्य है detach-client; यह सक्रिय ग्राहक को अलग करता है।

यह वही है जब आपको एक भेजने की आवश्यकता होती है सी-ख किसी भी प्रोग्राम के अंदर चल रहा है tmux सत्र। अगर आप भेजना चाहते थे सी-ख आपके सामान्य खोल में (उदा। क्योंकि आपका खोल Emacs-style संपादन का उपयोग कर रहा है सी-ख है backward-char (और आप तीर कुंजियों का उपयोग नापसंद करते हैं)) आपको उपयोग करने की आवश्यकता होगी सी-ख  सी-ख एक प्राप्त करने के लिए सी-ख खोल के लिए।


124
2018-02-24 04:21



वैकल्पिक रूप से, मैंने अक्सर उपयोग देखा है C-a C-a अंतिम सक्रिय खिड़की पर कूदने के लिए। ऐसी परिस्थितियों में कोशिश करें C-a a d अलग करना। धन्यवाद! - mkelley33
ध्यान दें: ऊपर उल्लिखित कॉम्बो केवल तभी उपलब्ध होगा जब a कुंजी के बजाय बाध्य है b उपयोगकर्ता के tmux.conf में। - mkelley33
मेरा बाहरी tmux उपयोग करता है C-a और आंतरिक एक C-b, और आंतरिक व्यक्ति से अलग होने में सक्षम होने के लिए एकमात्र चीज जो मेरे लिए काम करती है वह है C-a C-b-b d, लेकिन मुझे नहीं लगता कि मुझे दूसरी आवश्यकता क्यों है b - gcucurull


सही tmux उदाहरण में बनाने वाली कीबाइंडिंग के बारे में चिंता किए बिना इसे करने का एक और तरीका टाइप करना है tmux detach रिमोट टीएमयूक्स सत्र में।


38
2017-09-24 12:00





मैंने सफलता के बिना पहले जवाब की कोशिश की।

मैं निम्नलिखित परिणाम करके परिणाम प्राप्त करने में सक्षम था:

tmux attach

मैंने tmux में प्रवेश किया और देखा कि दूसरा सत्र अभी भी जुड़ा हुआ है

तो मैंने एक खोल पर वापस जाने के लिए अपने वर्तमान सत्र को अलग कर दिया: Ctrl + b; d

फिर मैंने निम्नलिखित जारी किए: tmux attach -d 

यह डिफ़ॉल्ट सत्र से संलग्न करने के लिए कहता है, और वर्तमान में जुड़े सभी अन्य सत्रों को अलग करता है। नीचे मैन पेज देखें ग्राहक और सत्र

संलग्न सत्र [-dr] [-t लक्ष्य-सत्र]                   (उपनाम: संलग्न)   यदि बाहरी tmux से चलाया जाता है, तो वर्तमान टर्मिनल में एक नया क्लाइंट बनाएं और इसे संलग्न करें   को लक्षित सत्र। यदि अंदर से उपयोग किया जाता है, तो मौजूदा क्लाइंट को स्विच करें। अगर-डी निर्दिष्ट है, कोई अन्य   सत्र से जुड़े ग्राहकों को अलग कर रहे हैं।  -r संकेत करता है कि ग्राहक केवल पढ़ने के लिए है (केवल कुंजी बाध्य है   डिटेच-क्लाइंट कमांड पर कोई प्रभाव पड़ता है)


4
2018-01-21 16:43





यदि आप एक अन्य विकल्प का प्रयास करना चाहते हैं तो नीचे दिए गए चरणों का पालन करें

  1. वर्तमान tmux सत्र को अलग करें Ctrl+b d । ताकि आप अब सामान्य टर्मिनल कमांड लाइन प्रॉम्प्ट पर जाएं।
  2. एक करो tmux ls । वर्तमान में संलग्न सत्र की तलाश करें
  3. पहले से जुड़े सत्र को अलग करने के लिए इस कमांड को निष्पादित करें tmux detach-client -s <attached_session_name>

0
2018-03-12 06:28