Я скопировал большой объем текста в буфер обмена, а затем вставил его в терминал. Я не думал, что он будет настолько большим, что продолжит заполнять экран в течение ~ 5 минут.
ctrl + c
кажется, работает большую часть времени, но не всегда, и мне казалось, что я не мог точно определить время.
Как я могу помешать неконтролируемой / мошеннической вставке из буфера обмена сделать терминал бесполезным, пока это не будет сделано?
обновление: я опубликовал ответ ниже, в котором используется htop
найти его, а затем SIGINT
чтобы убить его, но это также убивает терминал или панель (tmux). Было бы неплохо, если бы это не убивало / не останавливало процесс. Я попытался SIGQUIT
(Пауза), SIGABRT
(прервать) и SIGHUP
(повесить трубку), но безуспешно (на мошенническую пасту это не влияет).
обновление 2: Ах, в моем случае это вставка HTML и ctrl + c
на самом деле работает, но поскольку это разрыв строки / возврат в пасте, он запускает новую вставку каждую секунду или около того. Так ctrl + c
просто влияет на текущий. Я не думаю, что в этом сценарии будет другой вариант, кроме как убить процесс с помощью SIGINT
.
https://stackoverflow.com/questions/7771557/how-to-terminate-a-window-in-tmux Вы можете убить определенные панели в Tmux или поместить панель в сеанс экрана и таким образом убить ее. Я нахожу это немного чрезмерным, обычно я нажимаю ctrl-s, чтобы приостановить терминал, затем ctrl-c. Но из-за лени у меня есть привязка клавиш к xkill и я просто убиваю терминал :-) Я знаю, что это кувалда, чтобы взломать орех, но если вы используете vim, вы можете восстановить сеанс из файла подкачки, повторно открыв его снова.
Я закончил запуск htop
, который поместил мой процесс оболочки (fish) в начало списка с процессором 137%. Потом убил нажатием F9
(k
тоже работает). Я выбрал по умолчанию SIGTERM
и это убило процесс, как и ожидалось.