【问题标题】:bash fork error (Resource temporarily unavailable) does not stop, and keeps showing up every time I try to kill/rebootbash fork 错误(资源暂时不可用)不会停止,并且每次我尝试杀死/重新启动时都会出现
【发布时间】:2014-04-02 00:47:58
【问题描述】:

我错误地将受限服务器用作 5000 个并行连接的 iperf 服务器。 (限制为 1024 个进程) 现在每次登录时,我都会看到:

-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: Resource temporarily unavailable

然后,我试图杀死它们,但是当我执行 ps 时,我得到了这个:

-bash-4.1$ ps
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: Resource temporarily unavailable

当我执行 killall 或类似的事情时也会发生同样的情况。 我什至尝试过重新启动系统,但这又是我在重新启动后得到的:

-bash-4.1$ sudo reboot
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: retry: Resource temporarily unavailable
-bash: fork: Resource temporarily unavailable
-bash-4.1$ 

所以基本上我什么都做不了。所有命令都会出现此错误:/ 但是,我可以“退出”。

这是一个我没有物理访问权限的场外服务器,所以我无法在物理上关闭/打开它。

有什么办法可以解决这个问题吗?我非常感谢任何帮助。

【问题讨论】:

  • 你能不能叫现场的人帮你重启机器?
  • 我实际上试图避免这种情况,但看起来我必须这样做:叹息:

标签: linux bash process fork ulimit


【解决方案1】:

鉴于您可以登录,您可能想尝试使用exec 来执行您的所有命令。执行exec 后,您将不得不再次登录,因为exec 将杀死您的shell(通过将其替换为您运行的命令)。

exec 不会占用额外的进程槽,因为它会将正在运行的 shell 替换为要运行的程序。因此,它应该能够绕过ulimit 的限制。

【讨论】:

  • 试试exec sudo -s。也许限制是每个用户,超级用户将被允许创建更多进程。
  • 谢谢大家!我使用 exec 将 noproc 限制更改为 more,然后使用 exec 重新启动系统!它起作用了,所以至少我不必亲自去那里重新启动!
  • 无法自己进行一级登录。如何解决这个问题?
  • @Mona:如果您无法登录并且您没有任何打开的会话,那么您可能会遇到一些问题。最简单的做法是使用外部方法对盒子进行电源循环(例如,使用 Web 控制台重新启动它或致电数据中心的某个人)。
  • @nneonneo 我做了重置.. 现在它解决了。谢谢!
【解决方案2】:

我最近遇到了同样的问题。在我的情况下,原因是有代码在我的所有权下执行并且消耗了几乎所有的资源,没有给我的命令留下任何东西。这就是我所做的, "exec top" 标识消耗最大资源的 PID "exec kill -9 " 杀死上面命令识别的 PID。

杀死 PID 后,一切恢复正常,我能够重新登录。

【讨论】:

  • 这并不能真正回答问题。如果您有其他问题,可以点击 进行提问。一旦你有足够的reputation,你也可以add a bounty 来引起对这个问题的更多关注。
  • @DanielVérité 1.) 你真的看过我的帖子吗?我没有问任何问题,我尽我所知用我经历过的一个例子回答了这个问题。我没有兴趣获得任何声誉或关注。
  • @YMD:上面的评论是来自stackoverflow审查队列的罐头文本,而不是我个人写的。我认为您的答案已被标记,因为它与另一个答案基本相同,我同意这一点(新答案应该有很大不同)。对不起,如果样板文本看起来很奇怪,那或多或少a known problem
猜你喜欢
  • 1970-01-01
  • 2012-08-18
  • 1970-01-01
  • 1970-01-01
  • 2018-12-02
  • 2017-08-29
  • 1970-01-01
  • 2017-02-01
  • 1970-01-01
相关资源
最近更新 更多