Как убить убегающую / негодную вставку буфера обмена в 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 и это убило процесс, как и ожидалось.

Другие вопросы по тегам