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.

pehrs
sumber

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.

menandai
sumber
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
2

Telnet dan SSH memiliki saluran keluar untuk mengkonfigurasi pengaturan ini. Antarmuka serial tidak. Lihat: http://tools.ietf.org/html/rfc1073 dan http://tools.ietf.org/html/rfc4254#page-14

Mircea Vutcovici
sumber
2
Saya agak tahu bahwa ada saluran kontrol yang terlibat. Tetapi pertanyaannya tetap, apakah ada solusi yang lebih baik untuk konsol mesin virtual berbasis KVM? (Saya tidak keberatan mengkonfigurasi ulang mesin)
pehrs
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.

tryfail
sumber