Làm cách nào để truyền Ctrl-C cho khách khi chạy qemu với -nographic?


11

Tôi đã cấu hình grub của Qemu theo cách sau:

GRUB_TERMINAL="serial console"
GRUB_SERIAL_COMMAND="serial"
GRUB_CMDLINE_LINUX="..console=ttyS0"

và chạy qemuquá trình với -nographictùy chọn dòng lệnh. Những thứ này cho phép sử dụng thiết bị đầu cuối hiện tại cho bàn điều khiển nối tiếp và qemubàn điều khiển màn hình. Tuy nhiên, bây giờ, bất cứ khi nào tôi nhấn Ctrl+ Cbên trong VM đang chạy, nó sẽ bị chặn qemuvà tắt quá trình.

Làm thế nào tôi có thể vượt qua Ctrl+ Choặc bất kỳ tổ hợp phím nào khác liên quan đến CTRLQemu?

Câu trả lời:


16

Trong trình bao của bạn, trước khi bạn chạy qemu, hãy chạy "stty int ^]" để thay đổi khóa ngắt từ ^ c sang ctrl-]

Bằng cách đó, ctrl-c sẽ được chuyển qua qemu, nhưng bạn vẫn có thể tự ngắt qemu bằng cách nhấn ctrl-]


2
Để ghi đè Ctrl-Z (nền), quá stty susp ^]. Đối với Ctrl- \ (thoát), sử dụng stty quit ^]. Với nhiều định nghĩa cho một char duy nhất, đây là thứ tự ưu tiên: thoát khỏi nghi ngờ.
Lekensteyn

4

Bạn có thể thử sử dụng sendkeylệnh bằng cách sử dụng -monitor stdio. Mặc dù rõ ràng -display none -serial mon:stdiotùy chọn nên chuyển qua Ctrl+ ccho khách.

Bạn cũng có thể tạo một ổ cắm màn hình , như thế này:

qemu -display none -monitor unix:/tmp/qemu-monitor,server,nowait

Và sau đó, kết nối với màn hình để sử dụng sendkey socatnhư thế này:

socat - UNIX-CONNECT:/tmp/qemu-monitor

Bây giờ bạn có thể gửi chìa khóa của bạn, như thế này:

(qemu) sendkey ctrl-c
sendkey ctrl-c

Cảm ơn. Bạn có thể cho tôi biết làm thế nào tôi có thể 'nhảy' vào bảng điều khiển màn hình qemy (nghĩa là tôi nên nhấn phím nào), nếu tôi chạy qemu trong thiết bị đầu cuối PuTTY?
Đánh dấu

Trong GUI - Ctrl + Alt, sau đó Shift + 2 để chuyển sang màn hình hoặc Shift-1 để chuyển về hệ điều hành khách. Điều đó không hoạt động trong giao diện điều khiển. Ở đó bạn có thể sử dụng cách tiếp cận ổ cắm, và mở một screencửa sổ khác và kết nối với nó thông qua socat. Bạn cũng có thể sử dụng -monitor stdiođể chuyển hướng đến thiết bị đầu cuối của bạn thay vào đó.
Criveti Mihai

3

Xóa -monitorhoặc thêm-serial mon:stdio

Kể từ QEMU 2.10.1, Ubuntu 17.10, Ctrl-Cđược truyền theo mặc định cho khách mà không gặp vấn đề gì khi sử dụng -nographic.

Tuy nhiên, nếu bạn cũng sử dụng -monitortùy chọn, thay đổi hành vi và Ctrl-Cgiết chết QEMU thay thế.

Đây là cách -monitorthường được sử dụng: Làm thế nào để chuyển sang bảng điều khiển QEMU với -nographics? | Siêu người dùng

Nếu bạn cần -monitor, bạn có thể lấy lại Ctrl + C bằng -serial mon:stdio: Cách chạy qemu với -nographic và -monitor nhưng vẫn có thể gửi Ctrl + C cho khách và thoát bằng Ctrl + AX? | Tràn ngăn xếp

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.