Dalam sesi tmux di dalam xterm ketika sebuah program menghasilkan banyak ouput (seperti cat very_long_file
seluruh sesi dibekukan untuk sementara waktu. Bahkan jika saya menekan Ctrl-C tidak ada yang terganggu. Mungkin karena tmux dibekukan dan tidak meneruskan Ctrl-C ke program menghasilkan output. Apakah ada cara untuk mencegahnya?
38
Jawaban:
Solusi yang benar adalah dengan melihat opsi c0- * untuk tmux untuk mencoba dan menilai-membatasi output. Alasan masalah ini ada sama sekali adalah karena data yang dikirim ke terminal lebih cepat daripada yang bisa menampilkannya, sehingga pembatasan tingkat adalah satu-satunya cara.
sumber
setw -g c0-change-interval 100
dansetw -g c0-change-trigger 250
tidak membuat perbedaan bagi saya. Saya menggunakan tmux-1.8. Apakah saya melakukan sesuatu yang salah?set-window-option -g ...
ke.tmux.conf
.Saya masih memiliki masalah ini di tmux 1.6-2 di Ubuntu 12.10. Salah satu solusi yang saya temukan adalah untuk keluar dari sesi (awalan + d) dan kemudian pasang kembali (
tmux attach
, kandidat yang baik untuk alias shell cepat). Sepertinya tmux sebenarnya responsif di bawah tenda --- Anda dapat mengonfirmasi bahwa proses Anda benar-benar langsung dimatikan dengan ctrl-c --- hanya gambar yang menghalangi. Detatch berfungsi segera, dan ketika Anda memasang kembali, gambar akan dilewati sampai akhir.sumber
tmux attach
, bukan?tmux attach
.Sejauh yang saya tahu tidak ada cara untuk mencegahnya dalam rilis saat ini tetapi beberapa pekerjaan sedang berlangsung. Anda dapat menemukan beberapa tambalan di milis tmux http://thread.gmane.org/gmane.comp.terminal-emulators.tmux.user/2689 .
Kata kunci yang baik untuk mencari di web adalah "flow control".
sumber
Sayangnya opsi c0- * untuk pembatasan tingkat telah dihapus pada tmux versi 2.1 ( changelog ). Sejauh yang saya tahu, satu-satunya cara untuk menyesuaikan pembatasan tingkat adalah memperbarui variabel yang mempengaruhinya dalam kode sumber (tmux.h):
" READ_SIZE adalah ukuran maksimum data yang dapat ditampung dari pty (event watermark tinggi). READ_BACKOFF adalah jumlah data yang menunggu untuk di-output ke tty sebelum pty dibaca akan dibatalkan. READ_TIME adalah berapa lama untuk mundur sebelum baca selanjutnya (dalam mikrodetik) jika tty di atas READ_BACKOFF. "
Di mana Anda akan menemukan default: (pada tmux v2.2):
sumber
Jawabannya https://superuser.com/a/589896/311481 berfungsi dengan baik. Saya menggunakan nilai-nilai berikut:
Kiat lain: jika Anda menggunakan ssh di dalam tmux, gunakan mosh sebagai gantinya: http://mosh.mit.edu/ Berperilaku lebih cerdas untuk menampilkan keluaran program. Ia mencoba untuk menampilkan keadaan layar terakhir menjatuhkan perantara jika diperlukan. Jadi tmux tidak akan pernah membeku jika banyak output yang dihasilkan di dalam panel dengan sesi mosh di dalamnya.
sumber
Coba emulator terminal yang berbeda. Pada RedHat 6.5, konsole (KDE) tidak memiliki masalah pembekuan (tmux 2.3 dan master); Namun, xterm dan terminal gnome keduanya mengalami pembekuan yang buruk.
sumber