我已经和Unix玩了一段时间了,我发现了每个人都称之为叉形炸弹的可爱代码::(){ :|:& };:
。我想尝试一下,但我知道它会像疯了一样落后于我的电脑,所以我只是想知道是否有人可以给我一些步骤以便我的计算机在运行命令时不会滞后。谢谢你的帮助:D
答案 0 :(得分:3)
警告:在虚拟机中尝试此操作会好得多。以下是我的经验,但我不能保证您的结果会相似。
您可以使用ulimit -u
限制当前用户允许的进程数。请注意,限制将包含已在其他位置运行或启动的进程,因此您需要将其设置得相当大。 (100对我来说太小了,但500让我开始使用前叉炸弹。)该限制也适用于整个系统,因此您可能需要重新启动。(在Mac OS X上) ,我已退出任何shell,然后无法启动任何程序,包括我可能会删除限制的shell。)
警告说:500的限制似乎使我的shell崩溃了,但是200的限制似乎让我的shell在无限循环中尝试启动新进程而没有成功。
$ ulimit -u 500
$ :(){ :|:& };:
[kaboom]
答案 1 :(得分:1)
没有任何保证。使用linux,您可以尝试编辑/etc/security/limits.conf 你可以添加一些像
这样的东西 youruser hard nproc 80
在这种情况下,您的用户只能运行80个进程。这应该在一些事情发生之前停止forkbomb。但它也影响其他过程。
最好在虚拟机或不重要的系统中进行尝试。
答案 2 :(得分:1)
详细说明慢劫的答案(主要是因为我无法评论):
创建或找到一个无用的空用户,将他们的进程限制为某些东西,然后运行fork炸弹。
以root用户身份运行,或者以具有大量权限(特别是已知的破坏性事物)的用户运行是一个坏主意。 Linux系统没有安全带和头盔,他们很容易摧毁自己。