konsol virsh dan ukuran tty


11

Saya memiliki server virtualisasi yang saya hubungkan melalui ssh. Jika saya sekarang mengubah ukuran jendela itu akan secara otomatis menyebar ke server. Ini paling mudah dilihat menggunakan stty -a, memeriksa kolom dan nilai baris.

Saya kemudian gunakan virsh consoleuntuk terhubung ke antarmuka serial pada mesin virtual berbasis KVM. Ketika saya sekarang mengubah ukuran jendela itu tidak menyebar ke server virtual. Ini paling mudah dilihat dengan memeriksa stty -a, yang tidak diperbarui pada mesin virtual ketika saya mengubah ukuran jendela. Ini berarti bahwa jeda baris tidak berfungsi dengan benar di terminal dan aplikasi apa pun yang bergantung pada ukuran jendela untuk pemformatan (emacs, man, dll) akan kacau kecuali ukuran jendela pada klien cocok dengan ukuran default di server.

Solusinya adalah secara manual mengatur ukuran jendela agar sesuai dengan jendela klien menggunakan stty, tapi saya ingin tahu apakah ada cara untuk mendapatkan informasi ini untuk disebarkan dan mengatur ukuran jendela di mesin virtual secara otomatis.

Jawaban:


7

Anda sebagian besar bisa mengatasi masalah ini di shell.

Perintah:

eval `/usr/bin/resize`

akan mengatur variabel shell COLUMNS dan LINES dengan tepat dan kemudian mengekspornya. Jadi di bash, Anda bisa menambahkan yang berikut ke .bash_profile Anda (atau .profile, tergantung yang Anda gunakan)

PROMPT_COMMAND="eval `/usr/bin/resize`"

Atau dalam zsh:

function precmd {
    eval `/usr/bin/resize`
}

Sehingga perubahan ukuran akan dilakukan tepat sebelum setiap prompt ditampilkan. Efeknya tidak akan seperti itu dari ssh atau telnet di mana perubahan jendela akan ditangani segera sebagai hasilnya, namun saya pikir ini mungkin yang terbaik yang akan Anda dapatkan.


Sedikit ruwet, tapi tetap solusi yang bagus. Terima kasih!
pehrs

Lihat juga jawaban ini untuk melakukannya tanpa resizeperintah xterm : unix.stackexchange.com/a/283206
rsaw


0

Hanya menambahkan untuk menandai jawaban, bacause Serverfault tidak memungkinkan saya untuk berkomentar.

Ketika domain target adalah OpenBSD 6.6 , pengubahan ukuran terletak di tempat lain dan membutuhkan set xbase66 setidaknya.

Selain itu, jika Anda menggunakan ksh default , itu sudah cukup untuk dijalankan:

eval `/usr/X11R6/bin/resize`

Sayang sekali ini tidak ada dalam Panduan Admin KVM Red Hat.

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.