5

我在我的 Linux 桌面上尝试了这个实验:

int main()
{
  while(1)
    fork();
  return 0;
}

我以普通用户(不是 root)的身份运行该程序,我惊讶地发现它关闭了我的系统,它变得无响应。我曾希望由于资源限制耗尽我的进程会被杀死,但显然情况并非如此。任何想法为什么?

谢谢,席德。

PS:这是我在家里试验的办公室Linux机器,我希望明天重启时一切都会好起来....

4

3 回答 3

11

你重新发明了叉形炸弹

我认为大多数 Linux 发行版默认情况下都没有设置每个用户的资源限制。您当然可以配置它们,但您可能没有。

重新启动后机器会很好 - 除非 CPU 使用率导致过热问题。

为了防止普通用户产生太多进程,您需要将配置添加到/etc/security/limits.conf

ulimit如果您认为要运行的程序可能会启动过多进程或占用过多其他资源,则可以使用设置适用于当前会话的限制。

于 2009-01-18T13:10:19.123 回答
2

您可以在wikipedia上找到有关该内容的内容。

于 2009-01-18T13:11:58.887 回答
1

很可能,您的系统管理员没有设置用户限制。如果没有设置用户限制,那么他们就无法保护任何人。

于 2009-01-18T13:09:42.777 回答