我在 VMware ESXi 环境中运行 RHEL 6.5 虚拟机,并通过 vSphere Web Client 虚拟控制台(在我的浏览器中)访问它。
我故意让这台机器崩溃然后执行
:(){ :|:& };:
然而,我得到的只是
bash: fork: Cannot allocate memory
几次然后它就停止做任何事情。我可以通过 Ctrl+C 轻松退出并继续正常工作。这个叉子炸弹不起作用的原因可能是什么?
答案1
默认情况下,更现代的操作系统通常通过设置用户限制来保护自己免受此类滥用。这可能就是系统仍然响应的原因 - 它只允许您分配一定数量的内存,这比机器可用的内存要少得多。