linux – 如何阻止Fork Bomb内存错误 – RHEL 6
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了linux – 如何阻止Fork Bomb内存错误 – RHEL 6,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1206字,纯文字阅读大概需要2分钟。
内容图文
![linux – 如何阻止Fork Bomb内存错误 – RHEL 6](/upload/InfoBanner/zyjiaocheng/959/136188a4f63e4016a47b8a71b206d4a5.jpg)
我设置测试VM来测试fork炸弹的效果.所以我为root用户编辑了如下limits.conf:
root hard nproc 512
现在我放下一个这样的叉炸弹:
:(){ :|:& };:
在此之后,一段时间后(我认为达到512限制),出现以下错误:
这种情况持续不断.无论如何在没有重启机器的情况下停止此操作?
解决方法:
Is there anyway to stop this without rebooting the machine?
这不是很不可能,你可以通过运气来做到这一点 – 也就是说,你设法在另一个进程被生成之前杀死所有进程.但是你必须非常幸运,所以它不是一个可靠或值得的努力[也许slm比我在这里更幸运,哈哈 – TBH我没有那么努力过.如果你玩优先考虑,你的机会可能会有所改善(见男人),虽然我怀疑这也会影响叉炸弹的功效.
一个更好的想法可能是使用一个超时.有关C中的示例,请参阅脚注编号5至my answer here.2您可以使用shell脚本执行相同的操作,尽管不会像以下那样简短:(){:|:& }; ::
#!/bin/bash
export fbomb_duration=$1
export fbomb_start=$(date +%s)
go () {
now=$(date +%s)
if [[ $(($now-$fbomb_start)) -gt $fbomb_duration ]]
then exit 0;
fi
go &
}
while ((1)); do
go
done
使用一个参数执行该操作,持续数秒.在那之后,所有的叉子都会死掉.
1事实上,如果内核OOM杀手变得幸运,它最终可以自己发生.但是不要屏住呼吸.
2那里用来训练特定炸弹的方法(通过设置vm.overcommit_memory = 2)几乎肯定不会起作用,但你可以试试.我不是因为我现在想让我的系统运行;)
内容总结
以上是互联网集市为您收集整理的linux – 如何阻止Fork Bomb内存错误 – RHEL 6全部内容,希望文章能够帮你解决linux – 如何阻止Fork Bomb内存错误 – RHEL 6所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。