Прерывание очень длинного вывода в tmux

Прерывание очень длинного вывода в tmux

В терминале (GNOME), если catфайл оказывается слишком длинным, я всегда могу нажать Ctrl«-», cчтобы прервать его.

Однако в tmux, когда происходит то же самое, требуется много времени, чтобы сигнал, создаваемый нажатием клавиши Ctrl- c, достиг сервера, и пока это не произойдет, сервер занят этим выводом, и я не могу ничего сделать, кроме как наблюдать за потоком (или использовать другой терминал).

Это немного похоже на описанную проблемуздесь.

Я не хочу перезапускать терминал, сервер или даже конкретное tmuxокно/панель; использование less— это разумная привычка, но я спрашиваю здесь о том, как решать проблемы, которые уже возникли, а не о том, как быть умным и избегать их, думая, прежде чем действовать... сюрпризы будут всегда!

Итак, есть ли способ позволить терминалу остановить потоки, отбросить отправленные данные и т. д.? Что я могу сделать, чтобы освободить себя от этих раздражающихминутнаблюдать за персонажами на моем экране?

решение1

Два предложения

  1. Редко в таких случаях CTRL+ z более эффективен, чем CTRL+ c: он отвечает быстрее. После этого вы приостанавливаете команду, которую можете убить с помощью kill %1или как там номер задания. В надежде, что вы все еще сможете что-то прочитать с экрана (затопление случайным двоичным текстом может легко испортить ваш набор символов).

  2. В другом терминале вы можете спросить pgrep cat( catбыла ли вызвана команда) и определить catпроцесс, использующий вашПроцессорили по pstree:

    pgrep cat | awk '{print "pstree -sp "$1}' | sh | grep tmux

    ответ с выводом типа
    init(1)---lightdm(1428)---lightdm(2518)---init(2534)---tmux(22425)---баш(22426)---кот(22532)

    В этом случае, после того как у вас осталось killтолько cat PID:
    kill 22532

Примечание:

  • Если вы нажмете CTRL+ Cили CTRL+ zи после этого свернете окно, вероятно, система быстрее вас прочитаетзапрос на прерывание. Так что приостановка/прерывание, минимизация, ожидание немного, максимизация снова могут быть решением.
  • Как вы сказали, lessэто безопаснее.
  • Протестировано еще раз с tmux 1.8 и работает

решение2

Добавьте следующие строки в ваш tmux.conf (~/.tmux.conf)

set -g c0-change-trigger 150 set -g c0-change-interval 100

Более подробную информацию можно найти на сайтеhttp://blog.fraggod.net/2014/09/23/tmux-rate-limiting-magic-against-terminal-spamflood-lock-ups.html

Связанный контент