大约一年前就被介绍给了UNIX迷人的世界,但是由于缺乏一个更好的expression方式,由于我的修补,今天“与快速旋转的刀片相撞的浪费” 我决定是时候从专业人士那里得到一些build议了。
我只是想知道我的select是什么保护从叉炸弹运行OS X 10.6的计算机。 我这样问是因为(我是完整的山雀)我以某种方式假定,由于系统不易受到BASH标准叉车的伤害,所以在运行时给我以下几点:
"-bash: fork: Resource temporarily unavailable"
这也不会容易被写成一个单一的class轮C.只要说我跑了,一切都停了下来,显然没有什么我可以做(除了重新启动),因为我无法启动任何新的进程。 我看了一下ulimit,但是现在一切都已经过去了。
如果我为每个使用ulimit的用户设置一个(较低的)进程限制,那么我可以作为另一个用户ssh进入,并以某种方式杀死fork炸弹? 我对这一切都是相当陌生的,正如你所看到的那样 – 考虑到这一点,我不确定我将如何杀死这个东西。
无论如何,我想知道如何防止一个叉式炸弹(当运行相同的分叉C程序时)再次发生,我知道这可能是一个个人机器矫枉过正,但如果我可以使系统less一点容易导致用户崩溃,我想这样做。 为了我自己的安宁,如果没有别的。
总结(对不起,我的漫长和不连贯的漫不经心,这里已经很晚了,你也许可以告诉 – 我不会在网上发帖太多了,我更多的是一个老实人;也请不要活着吃我我已经发布了一个愚蠢的问题!:-p
我怎样才能保护我的Mac免受炮弹的轰炸? (使用ulimit,如果这是最好的办法)
如果ulimit是如何做到这一点,我该如何做ulimit更换棒? 如果我没有弄错,它会在重启时重置为默认值。
做完以上两点之后,我将如何杀死一个叫做DO_NOT_EXECUTE的正在运行的叉子炸弹,这个炸弹正在遍地扩大,并填满了我所有的工序槽? 理想情况下,我想和BASH fb给出的错误一样,当我运行C的可执行文件,并允许我简单的CTRL-C退出,但我会采取任何方法,我可以find允许我恢复无需重启。
谢谢大家的耐心(以及任何可能的帮助)
OMS
Mac OS X …“fork:资源暂时不可用”
完全涵盖了这一点,包括使所需的变更持续下去。 我原以为你会因为这个限制的差异而受到保护
$ sysctl kern.maxproc kern.maxprocperuid
当然,如果你是推出叉炸弹的用户,没有这样的运气!
看看sysctl来调整内核的限制。 出于某种原因,MacOS X手册页没有提到kern.maxprocperuid ,正如多年前在Mac OS X Hints中提到的那样。
至于很快摆脱很多进程,我会用killall 。