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