在我们的一个服务器上,我错误地运行了 shell/ssh 代码:
while ``yes
; do ls; done;
现在我想重新连接它,但它仍然挂起。我该怎么办?
答案1
如果您的系统根本没有响应,我认为除了硬件重置/重启之外您什么也做不了。
在多核架构中,只有一个 CPU 核心应该处于 100% 使用率。其他核心应该可用。因此,您应该能够使用另一个 shell 连接到您的服务器。
答案2
好吧,如果您仍打开了一个 shell 或者您可以打开一个新 shell,您可以通过使用 ps aux 查找该进程并 grepping 查找 shell 脚本的名称来终止该进程。正如 MadHatter 建议的那样,您应该使用kill -9
来终止该进程。
如果您无法通过 SSH 连接到它,恐怕您必须去那里获取物理访问权限(或类似远程控制)并查看它是否可以挽救。如果不行,您将不得不拔掉电源插头。
也许如果它开始使用足够的内存或资源,OOM 杀手就会来购买并杀死它,但那时可能会有其他东西破坏。