Cara memutus sambungan dari lxc-console

41

Saya bekerja dengan lxc di Ubuntu 12.04, dan ini sangat bagus. Namun, saya tidak dapat memutuskan sambungan dari lxc-consolesesi setelah saya terhubung. Saya membaca suatu tempat yang Ctrl-aqakan memutuskan koneksi saya dari konsol tetapi sepertinya tidak berhasil.

Haruskah saya menjalankan lxc-consolevia screengantinya?

robbyt
sumber
Saya memiliki masalah yang sama. Jika Anda memulai sebuah wadah yang lupa parameter "-d", tidak ada jalan keluar. Ctrl aq tidak berpengaruh. Satu-satunya solusi yang saya temukan adalah masuk ke konsol, dan lakukan "sudo poweroff", yang membuat Anda keluar.
eos
Anda juga dapat melakukan lxc-stopdari shell lain
Martin Serrano

Jawaban:

56

Ya,, Ctrl-aqseharusnya berfungsi secara default, namun tidak, lxc-consoletidak benar-benar digunakan screenuntuk menyelesaikan perilaku konsolnya. Bahkan, Anda mungkin menghadapi konflik jika Anda menggunakan layar karena juga digunakan Ctrl-asebagai awalan. Jika Anda di dalam screentetapi tidak menyadarinya maka Anda harus mengetik Ctrl-a a qkarena perilaku defaultnya screenadalah bahwa Anda harus mengetik Ctrl-a auntuk benar-benar mengirim ^ake shell yang berjalan di dalamnya. Anda dapat mengubah awalan untuk melarikan diri dengan meneruskan opsi -eatau --escape=PREFIXke lxc-console.

Selain itu, tampaknya ada bug di lxc-startdalamnya sehingga jika segera masuk ke mode konsol ketika Anda memulai wadah yang tidak dapat Anda gunakan Ctrl-a quntuk melarikan diri - pada kenyataannya, semua karakter kontrol tampaknya kacau dan mencetak ke layar alih-alih berperilaku seperti yang Anda harapkan. Salah satu solusinya adalah menjalankannya dengan opsi -datau --daemonsehingga tidak segera memulai konsol, dan koneksi ke sana dengan tangan:

lxc-start -d -n container-name
lxc-console -n container-name
aculich
sumber
1
<kbd> Ctrl-a q </kdb> tidak memiliki efek pada konsol yang terhubung dengan lxc versi 0.9.0
Jay Taylor
5
jika para pengembang lxc seharusnya bertanya-tanya mengapa buruh pelabuhan memiliki adopsi satu miliar kali lebih tinggi, bug ini adalah salah satu alasan utama.
Florian Heigl
1
@FlorianHeigl Sementara saya setuju dengan sentimen Anda tentang bug ini yang jelek, alasan sebenarnya untuk itu adalah sikap: bugs.debian.org/cgi-bin/bugreport.cgi?bug=768073 access.redhat.com/articles/1365153 akses. redhat.com/discussions/2772171 (dan banyak kesempatan lain di mana RedHat merespons "LX (C | D)?" dengan "Tidak, Docker!" (perhatikan bahwa ini adalah hasil teratas Google untuk "LXD Debian", dan "LXD Redhat" pertanyaan ").
Bojan Markovic
2

Apa yang saya lakukan untuk menghentikan wadah

  1. Buka sesi baru.
  2. Login sebagai root.
  3. Periksa status wadah.
  4. lxc-stop -n <name of the container>

Ini akan menghentikan wadah.

Sreeniva
sumber
0

Tidakkah terhubung melalui screen? Ctrl-a dharus mengeluarkanmu dari itu.

The Halaman Ubuntu LXC memiliki informasi lebih lanjut.

El Yobo
sumber
Tidak, ini tidak berhasil. Saya telah menggunakan layar sehingga saya dapat memutuskan sambungan dari lxc-console. Juga, tautan yang Anda poskan tidak memiliki informasi tentang masalah ini.
robbyt
"Lepaskan layar: Ca d atau Ca Cd" - help.ubuntu.com/community/LXC#Mini_screen_how-to ; tidak yakin apa yang harus dilakukan jika itu tidak berhasil.
El Yobo
1
@ ElYobo Tidak, lxc-consoletidak benar-benar menggunakan screen, itu hanya memiliki perilaku yang sama dan secara default benar-benar menggunakan kunci yang bertentangan dengan screenseperti yang dijelaskan di sini .
aculich
0

Cara alternatif untuk login adalah hanya ssh <ip>menggunakan instaed of use lxc-console. Anda dapat menggunakannya mulai dengan menggunakan daemon lxc-start -d -n <name>dan kemudian login menggunakan konsol untuk mendapatkan IP untuk pertama kalinya.

Nishant
sumber
0

Saya memiliki masalah yang sama ketika bekerja dengan LXC Trusty saya di Xenial-host dan setelah memulai wadah dengan lxc-start -F -n CNtidak bisa keluar dan kembali menjadi tuan rumah ketika logout dari wadah. Juga sudo lxc-ls -fdi host digantung dan tidak ada lxc-stopperintah dengan opsi -k atau -W atau --no-lock bekerja, jadi saya akhirnya membunuh -9 proses wadah yang bekerja tetapi kemudian memulai wadah dengan lxc-startatau lxc-attachtidak bekerja dengan benar , tetapi tampilkan kesalahan tentang lxc_cgfsng dan tidak menemukan pid init dll.

Lihat lebih lanjut di sini: https://github.com/lxc/lxc/issues/1195

OpenITeX
sumber
-6

Ketika Anda selesai bekerja dengan beberapa aplikasi, Anda biasanya dapat menghentikannya dengan CTR + C. Jika itu tidak berhasil, selalu ada perintah berhenti: CTRL +.

CTRL + D, di sisi lain berarti "AKHIR FILE", dan biasanya berfungsi untuk menghentikan beberapa program dari membaca keyboard. Anda dapat keluar dari shell biasa dengan CTRL + D.

Ярослав Рахматуллин
sumber