![如何终止 CLI 中的失控/恶意剪贴板粘贴?](https://linux22.com/image/698943/%E5%A6%82%E4%BD%95%E7%BB%88%E6%AD%A2%20CLI%20%E4%B8%AD%E7%9A%84%E5%A4%B1%E6%8E%A7%2F%E6%81%B6%E6%84%8F%E5%89%AA%E8%B4%B4%E6%9D%BF%E7%B2%98%E8%B4%B4%EF%BC%9F.png)
我将大量文本复制到剪贴板,然后将其粘贴到终端中。我没有意识到它会如此之大,以至于它会持续填满屏幕约 5 分钟。
ctrl + c
似乎大多数时候都有效,但并非总是有效,而且我似乎无法把握正确的时间。
我怎样才能阻止失控/恶意的剪贴板粘贴导致终端无用,直到完成为止?
更新:我在下面发布了一个答案,使用htop
来找到它,然后将SIGINT
其杀死,但这也会杀死终端或窗格 (tmux)。如果它没有杀死/关闭该进程就好了。我尝试了SIGQUIT
(暂停)、SIGABRT
(中止) 和SIGHUP
(挂断),但没有成功 (它不会影响流氓粘贴)。
更新 2:啊,在我的情况下,这是一个 HTML 粘贴,并且ctrl + c
确实有效,但由于粘贴中有换行符/回车符,因此每隔一秒左右就会开始一次新的粘贴。所以ctrl + c
只会影响当前的粘贴。我认为在这种情况下除了使用 终止进程之外没有其他选择SIGINT
。
答案1
https://stackoverflow.com/questions/7771557/how-to-terminate-a-window-in-tmux您可以在 Tmux 中关闭特定窗格,或者将窗格放入屏幕会话中,然后以此方式关闭它。我发现这有点过分,通常我会按 ctrl-s 暂停终端,然后按 ctrl-c。但因为懒,我有一个键绑定到 xkill 并直接关闭终端 :-) 我知道这是用大锤砸墙,但如果您使用 vim,您可以通过重新打开交换文件来恢复会话。
答案2
我最终启动了htop
,这使我的 shell (fish) 进程位于列表顶部,占用了 137% 的 CPU。然后我按F9
(k
也有效) 将其终止。我选择了默认设置SIGTERM
,它按预期终止了进程。