最近我一直在挖掘有关 GNU/Linux 进程的信息,我遇到了臭名昭著的 fork 炸弹:
:(){ : | :& }; :
Run Code Online (Sandbox Code Playgroud)
理论上,它应该无限复制自己,直到系统耗尽资源......
但是,我已经尝试在CLI Debian和GUI Mint发行版上进行测试,它似乎对系统影响不大。是的,创建了大量进程,一段时间后我在控制台消息中阅读了如下内容:
bash: fork: 资源暂时不可用
bash: fork: 重试: 没有子进程
但是一段时间后,所有进程都会被杀死,一切都恢复正常。我读过ulimit为每个用户设置了最大进程数,但我似乎无法将其提高到很远。
什么是针对叉形炸弹的系统保护?为什么在一切都冻结或至少滞后很多之前它不会自我复制?有没有办法用叉子炸弹真正使系统崩溃?