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?

Menandai
sumber

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-]

Michael Brown
sumber
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
Criveti Mihai
sumber
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

Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功
sumber