bash fork错误(资源暂时不可用)不会停止,每次我尝试杀死/重启时都会一直显示

use*_*165 11 linux bash fork process ulimit

我错误地使用有限的服务器作为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
Run Code Online (Sandbox Code Playgroud)

然后,我试图杀死他们,但是当我做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
Run Code Online (Sandbox Code Playgroud)

当我做一个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$ 
Run Code Online (Sandbox Code Playgroud)

所以基本上我什么都做不了.所有命令都会收到此错误:/我可以"退出".

这是一个我没有物理访问权限的异地服务器,因此我无法在物理上关闭/打开它.

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

nne*_*neo 20

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

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

  • 试试`exec sudo -s`.也许限制是每用户,超级用户将被允许创建更多进程. (7认同)

MYD*_*MYD 5

我最近遇到了同样的问题.在我的情况下,原因是有些代码在我的所有权下执行,几乎消耗了所有资源而没有为我的命令留下任何东西.这就是我所做的,"exec top"来识别消耗最大资源"exec kill -9"的PID,从而消除上述命令识别的PID.

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

  • @DanielVérité1.)你真的看过我的帖子吗?我没有问任何问题,我尽我所知回答了这个问题,我接受了一个例子.我没有兴趣获得任何重复或表达. (2认同)