Bagaimana cara mengirimkan Ctrl-C kepada tamu ketika menjalankan qemu dengan -nografis?


11

Saya mengkonfigurasi grub Qemu dengan cara berikut:

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

dan jalankan qemuproses dengan -nographicopsi baris perintah. Ini memungkinkan untuk menggunakan terminal saat ini untuk konsol serial dan qemukonsol monitor. Namun sekarang, setiap kali saya menekan Ctrl+ Cdi dalam VM yang sedang berjalan, itu dicegat oleh qemudan dimatikan prosesnya.

Bagaimana saya bisa lulus Ctrl+ Catau keystroke lain yang terlibat CTRLdalam Qemu?

Jawaban:


16

Di shell Anda, sebelum Anda menjalankan qemu, jalankan "stty intr ^]" untuk mengubah kunci interupsi dari ^ c ke ctrl-]

Dengan begitu, ctrl-c akan diteruskan ke qemu, tetapi Anda masih dapat mengganggu qemu itu sendiri dengan menekan ctrl-]


2
Untuk mengganti Ctrl-Z (latar belakang) juga, ada stty susp ^]. Untuk Ctrl- \ (berhenti), gunakan stty quit ^]. Dengan beberapa definisi untuk satu karakter, ini adalah urutan prioritas: intr stops susp.
— Lekensteyn

4

Anda dapat mencoba menggunakan sendkeyperintah menggunakan -monitor stdio. Meskipun tampaknya -display none -serial mon:stdioopsi harus melewati Ctrl+ cke tamu.

Anda juga dapat membuat soket monitor , seperti ini:

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

Dan kemudian, sambungkan ke monitor untuk menggunakan sendkey dengan socatseperti ini:

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

Anda sekarang dapat mengirim kunci Anda, seperti ini:

(qemu) sendkey ctrl-c
sendkey ctrl-c

Terima kasih. Bisakah Anda memberi tahu saya bagaimana saya bisa 'melompat' ke konsol monitor qemy (mis. Keystroke apa yang harus saya tekan), jika saya menjalankan qemu di terminal Putty?
— Tandai

Di GUI - Ctrl + Alt lalu Shift + 2 untuk beralih ke monitor, atau Shift-1 untuk beralih kembali ke OS tamu. Itu tidak berfungsi di konsol. Di sana Anda dapat menggunakan pendekatan soket, dan membuka screenjendela lain dan menghubungkannya melalui socat. Anda juga dapat menggunakan -monitor stdiountuk mengarahkan ulang ke terminal Anda.
— Criveti Mihai

3

Hapus -monitoratau tambahkan-serial mon:stdio

Pada QEMU 2.10.1, Ubuntu 17.10, Ctrl-Cdapat diteruskan secara default ke tamu tanpa masalah saat menggunakan -nographic.

Namun, jika Anda juga menggunakan -monitoropsi, perubahan perilaku, dan Ctrl-Cbunuh QEMU sebagai gantinya.

Ini adalah bagaimana -monitorbiasanya digunakan: Bagaimana cara beralih ke panel kontrol QEMU dengan -nografi? | Pengguna Super

Jika perlu -monitor, Anda bisa mendapatkan Ctrl + C kembali dengan -serial mon:stdio: Bagaimana menjalankan qemu dengan -nographic dan -monitor tetapi masih dapat mengirim Ctrl + C ke tamu dan berhenti dengan Ctrl + AX? | Stack Overflow

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.