Lxc-कंसोल से डिस्कनेक्ट कैसे करें


41

मैं Ubuntu 12.04 में lxc के साथ काम कर रहा हूं, और यह वास्तव में बहुत अच्छा है। हालाँकि, मैं lxc-consoleकनेक्ट होने के बाद एक सत्र से डिस्कनेक्ट करने में असमर्थ हूं। मैंने कहीं पढ़ा है कि Ctrl-aqमुझे कंसोल से अलग कर दिया जाएगा, लेकिन यह काम नहीं करता है।

मैं चल रहा होना चाहिए lxc-consoleके माध्यम से screenके बजाय?


मेरे साथ भी वही दिक्कत है। यदि आप "-d" पैरामीटर को भूलकर एक कंटेनर शुरू करते हैं, तो कोई रास्ता नहीं है। Ctrl aq का कोई प्रभाव नहीं है। एकमात्र समाधान जो मैंने पाया है, वह कंसोल में प्रवेश करना है, और "sudo पॉवरऑफ़" करना है, जो आपको बाहर निकालता है।
eos

आप एक lxc-stopअन्य शेल से भी कर सकते हैं
मार्टिन सेरानो

जवाबों:


56

हां, Ctrl-aqडिफ़ॉल्ट रूप से काम करना चाहिए, हालांकि, नहीं, lxc-consoleवास्तव में screenअपने कंसोल व्यवहार को पूरा करने के लिए उपयोग नहीं करता है। वास्तव में, आप एक संघर्ष का सामना कर रहे हैं यदि आप स्क्रीन का उपयोग कर रहे हैं क्योंकि यह भी Ctrl-aउपसर्ग के रूप में उपयोग करता है । यदि आप अंदर हैं, screenलेकिन यह महसूस नहीं करते हैं, तो आपको टाइप करने की आवश्यकता होगी Ctrl-a a qक्योंकि डिफ़ॉल्ट व्यवहार screenयह है कि आपको Ctrl-a aवास्तव ^aमें इसके अंदर चल रहे शेल को भेजना होगा। आप -eया --escape=PREFIXविकल्प को पास करके भागने के लिए उपसर्ग बदल सकते हैं lxc-console

इसके अलावा, ऐसा प्रतीत होता है कि इसमें एक बग हो सकता है lxc-startताकि यदि आप कंटेनर को शुरू करते समय तुरंत कंसोल मोड में चले जाएं तो आप Ctrl-a qबचने के लिए उपयोग नहीं कर सकते हैं - वास्तव में, सभी नियंत्रण वर्ण खराब हो जाते हैं और स्क्रीन पर प्रिंट होते हैं अपनी अपेक्षा के अनुरूप व्यवहार करने के बजाय। एक वर्कअराउंड इसे -dया --daemonविकल्प के साथ चलाना है ताकि यह तुरंत एक कंसोल शुरू न करे, और इसे हाथ से कनेक्ट करें:

lxc-start -d -n container-name
lxc-console -n container-name

1
<kbd> Ctrl-a q </ kdb> का लिंकेज़ संस्करण 0.9.0 के साथ जुड़े कंसोल पर कोई प्रभाव नहीं है
Jay टेलर

5
अगर lxc dev को कभी भी आश्चर्य होना चाहिए कि डॉकटर को एक अरब गुना अधिक गोद क्यों लेना पड़ा, तो यह बग मुख्य कारणों में से एक है।
फ्लोरियन हीगल

1
@FlorianHeigl जब मैं इस बग के बदसूरत होने के बारे में आपकी भावना से सहमत हूं, तो इसके लिए सही कारण हैं दृष्टिकोण: bugs.debian.org/cgi-bin/bugreport.cgi?bug=76805 access.redhat.com/articles/1365153 पहुंच। redhat.com/discussions/2772171 (और कई अन्य अवसरों पर जहां RedHat "LX (C | D)?" के साथ "No, Docker!" का जवाब देता है (ध्यान दें कि ये "LXD इबियन", और "LXD Redhat) के लिए शीर्ष Google परिणाम हैं। प्रश्न ")।
बजन मार्कोविच

2

मैंने कंटेनर को रोकने के लिए क्या किया

  1. एक नया सत्र खोलें।
  2. रूट के रूप में लॉगिन करें।
  3. कंटेनर की स्थिति जांचें।
  4. lxc-stop -n <name of the container>

इससे कंटेनर रुक जाएगा।


0

यह के माध्यम से कनेक्ट नहीं करता है screen? Ctrl-a dआपको इससे बाहर निकलना चाहिए।

उबंटू LXC पेज अधिक जानकारी है।


नहीं, यह काम नहीं करता है। मैं स्क्रीन का उपयोग कर रहा हूं ताकि मैं lxc- कंसोल से डिस्कनेक्ट कर सकूं। साथ ही, आपके द्वारा पोस्ट किए गए लिंक में इस समस्या के बारे में कोई जानकारी नहीं है।
लूटें

" डिटैच स्क्रीन: सीए डी या सीए सीडी" - help.ubuntu.com/community/LXC#Mini_screen_how-to ; यकीन नहीं है कि अगर यह काम नहीं कर रहा है तो क्या करें।
एल योबो

1
@ElYobo नहीं है, lxc-consoleवास्तव में उपयोग नहीं करता है screen, यह सिर्फ समान व्यवहार है और डिफ़ॉल्ट रूप से वास्तव में एक महत्वपूर्ण यह है कि के साथ संघर्ष का उपयोग करता है screenके रूप में यहाँ वर्णित
अकुलिच

0

लॉगिन करने का एक वैकल्पिक तरीका सिर्फ ssh <ip>उपयोग करने के लिए प्रेरित करना है lxc-console। आप इसे lxc-start -d -n <name>पहली बार उपयोग कर डेमन के रूप में उपयोग कर सकते हैं और फिर पहली बार आईपी प्राप्त करने के लिए कंसोल का उपयोग करके लॉगिन कर सकते हैं।


0

मेरे पास एक ऐसा ही मुद्दा था जब मैं अपने भरोसेमंद एलएक्ससी के साथ काम कर रहा था, जो शिनियल-होस्ट में था और कंटेनर को शुरू करने के बाद lxc-start -F -n CNबाहर नहीं निकल सका और जब कंटेनर से लॉग आउट किया गया तो होस्ट करने के लिए वापस आ गया। इसके अलावा sudo lxc-ls -fमेजबान फांसी पर लटका दिया और से कोई भी में lxc-stop-k या डब्ल्यू या --no-लॉक विकल्पों के साथ आदेश, काम तो मैं अंत में कंटेनर प्रक्रिया है जो काम किया -9'd को मारने, लेकिन बाद में साथ कंटेनर शुरू करने lxc-startया lxc-attachठीक से काम नहीं , लेकिन lxc_cgfsng के बारे में त्रुटियों को प्रदर्शित करें और इनिट पिड आदि का पता न लगाएं।

यहाँ और देखें: https://github.com/lxc/lxc/issues/1195


-6

जब आप कुछ एप्लिकेशन के साथ काम कर रहे होते हैं तो आप आमतौर पर इसे CTR + C डायन कर सकते हैं। यदि वह चाल नहीं करता है, तो हमेशा कमांड छोड़ें: CTRL +।

दूसरी ओर CTRL + D का अर्थ है "END OF FILE", और आमतौर पर कुछ प्रोग्राम को कीबोर्ड पढ़ने से रोकने का काम करता है। आप CTRL + D के साथ नियमित शेल से लॉग आउट कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.