Cách ngắt kết nối với bảng điều khiển lxc


41

Tôi đang làm việc với lxc trong Ubuntu 12.04 và nó thực sự tuyệt vời. Tuy nhiên, tôi không thể ngắt kết nối khỏi lxc-consolephiên sau khi tôi đã kết nối. Tôi đọc ở đâu đó Ctrl-aqsẽ ngắt kết nối tôi khỏi bảng điều khiển nhưng có vẻ như nó không hoạt động.

Tôi có nên chạy lxc-consolequa screenthay thế?


Tôi có cùng một vấn đề. Nếu bạn bắt đầu một container mà quên tham số "-d", không có lối thoát. Ctrl aq không có hiệu lực. Giải pháp duy nhất tôi tìm thấy là đăng nhập vào bảng điều khiển và thực hiện "sudo poweroff", giúp bạn thoát ra.
eos

bạn cũng có thể thực hiện lxc-stoptừ một vỏ khác
Martin Serrano

Câu trả lời:


56

Có, Ctrl-aqnên hoạt động theo mặc định, tuy nhiên không, lxc-consolekhông thực sự sử dụng screenđể thực hiện hành vi điều khiển của nó. Trong thực tế, bạn có thể gặp phải một xung đột nếu bạn đang sử dụng màn hình vì nó cũng sử dụng Ctrl-alàm tiền tố. Nếu bạn ở trong screennhưng không nhận ra điều đó thì bạn sẽ cần phải nhập Ctrl-a a qvì hành vi mặc định screenlà bạn phải nhập Ctrl-a ađể thực sự gửi ^ađến vỏ chạy bên trong nó. Bạn có thể thay đổi tiền tố để thoát bằng cách chuyển -ehoặc --escape=PREFIXtùy chọn sang lxc-console.

Ngoài ra, có vẻ như có một lỗi xảy ra lxc-startđể nếu nó ngay lập tức chuyển sang chế độ bảng điều khiển khi bạn khởi động thùng chứa mà bạn không thể sử dụng Ctrl-a qđể thoát - thực tế, tất cả các ký tự điều khiển dường như bị vặn và in ra màn hình thay vì cư xử theo cách bạn mong đợi. Một cách giải quyết khác là chạy nó với -dhoặc --daemontùy chọn để nó không ngay lập tức khởi động bàn điều khiển và kết nối với nó bằng tay:

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

1
<kbd> Ctrl-a q </ kdb> không có bất kỳ ảnh hưởng nào đến bảng điều khiển được kết nối với phiên bản lxc 0.9.0
Jay Taylor

5
Nếu các nhà phát triển lxc nên tự hỏi tại sao docker có tỷ lệ chấp nhận cao hơn hàng tỷ lần, thì lỗi này là một trong những lý do chính.
Florian Heigl

1
@FlorianHeigl Mặc dù tôi đồng ý với suy nghĩ của bạn về lỗi này là xấu, nhưng lý do thực sự cho đó là thái độ: bug.debian.org/cgi-bin/ormsreport.cgi?orms=768073 access.redhat.com/articles/1365153 truy cập. redhat.com/discussions/2772171 (và nhiều dịp khác mà RedHat phản hồi với "LX (C | D)?" với "Không, Docker!" (lưu ý rằng đây là những kết quả hàng đầu của Google cho "LXD Debian" và "LXD Redhat truy vấn ").
Bojan Markovic

2

Tôi đã làm gì để ngăn chặn container

  1. Mở một phiên mới.
  2. Đăng nhập bằng root.
  3. Kiểm tra trạng thái container.
  4. lxc-stop -n <name of the container>

Điều này sẽ dừng container.


0

Nó không kết nối thông qua screen? Ctrl-a dsẽ giúp bạn thoát khỏi nó.

Trang Ubuntu LXC có nhiều thông tin hơn.


Không, điều này không hoạt động. Tôi đã sử dụng màn hình để có thể ngắt kết nối với bảng điều khiển lxc. Ngoài ra, liên kết mà bạn đã đăng không có bất kỳ thông tin nào về vấn đề này.
cướp

"Tách màn hình: Ca d hoặc Ca Cd" - help.ubfox.com/community/LXC#Mini_screen_how-to ; không biết phải làm gì nếu nó không hoạt động.
El Yobo

1
@ElYobo Không, lxc-consolekhông thực sự sử dụng screen, nó chỉ có hành vi tương tự và theo mặc định thực sự sử dụng một khóa xung đột với screen'như được mô tả ở đây .
aculich

0

Một cách khác để đăng nhập là chỉ cần ssh <ip>sử dụng lxc-console. Bạn có thể sử dụng start it as daemon bằng cách sử dụng lxc-start -d -n <name>và sau đó đăng nhập bằng console để lấy IP lần đầu tiên.


0

Tôi gặp vấn đề tương tự khi làm việc với Trusty LXC của mình trong máy chủ Xenial và sau khi khởi động container, lxc-start -F -n CNkhông thể thoát ra và quay lại máy chủ khi đăng xuất khỏi container. Ngoài ra, sudo lxc-ls -fmáy chủ bị treo và không có lxc-stoplệnh nào có tùy chọn -k hoặc -W hoặc --no-lock hoạt động, vì vậy cuối cùng tôi đã giết -9'd quá trình container hoạt động nhưng sau đó khởi động container với lxc-starthoặc lxc-attachkhông hoạt động đúng , nhưng hiển thị lỗi về lxc_cgfsng và không tìm thấy init pid, v.v.

Xem thêm tại đây: https://github.com/lxc/lxc/issues/1195


-6

Khi bạn hoàn thành công việc với một số ứng dụng, bạn thường có thể chấm dứt ứng dụng đó là CTR + C. Nếu điều đó không thực hiện được, thì luôn có lệnh thoát: CTRL +.

Mặt khác, CTRL + D có nghĩa là "KẾT THÚC TẬP TIN" và thường hoạt động để ngăn một số chương trình đọc bàn phím. Bạn có thể đăng xuất khỏi shell thông thường bằng CTRL + D.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.