linux fork: retry: 没有子进程、资源暂时不可用问题解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux fork: retry: 没有子进程、资源暂时不可用问题解决相关的知识,希望对你有一定的参考价值。

参考技术A 普通用户执行命令时,有时候会报如下错误

是因为该用户的线程满了导致的。通过 ulimit -a 命令查看可以看到该用户的 max user processes 值是1024或者4096。对比查看root用户的,可以看到是unlimited。
知道问题出在哪儿,就好解决了。
解决方法1、直接使用 ulimit -u 命令修改即可。

解决方法2、通过修改配置文件中该参数的值即可。
centos7.5中配置文件为 /etc/security/limits.d/20-nproc.conf 。
网上的参考资料中centos6为 /etc/security/limits.d/90-nproc.conf 这个未验证。

修改4096为10000(所需的值)保存即可。注意需要用户重新登录才能生效,这一步网上许多关于修改配置文件的解决方法后都没提,要注意。

-bash: fork: retry: Resource temporarily unavailable

登陆不了服务器
The server refused to start a shell.

登陆服务器后执行ls命令报错:

 

 

上面这段错误提示的本质是Linux操作系统无法创建更多进程,导致出错。
因此要解决这个问题需要修改Linux允许创建更多的进程。

修改Linux最大进程数

我们可以通过ulimit -a来查看当前Linux系统的一些系统参数。

 

 

在上面这些参数中,通常我们关注得比较多的是一个进程可打开的最大文件数,即open files。
系统允许创建的最大进程数量即是max user processes 这个参数。
我们可以使用 ulimit -u 4096 修改max user processes的值,但是只能在当前终端的这个session里面生效,重新登录后仍然是使用系统默认值。
正确的修改方式是修改/etc/security/limits.d/90-nproc.conf文件中的值。

 

 

我们只要修改上面文件中的4096这个值,即可。

 

除非注明,本站文章均为: nginx.cn原创,转载请注明本文地址: http://www.nginx.cn/3002.html

--完--

以上是关于linux fork: retry: 没有子进程、资源暂时不可用问题解决的主要内容,如果未能解决你的问题,请参考以下文章

Linux报错-bash: fork: retry: Resource temporarily unavailable和进程描述符之间的关系

Linux报错-bash: fork: retry: Resource temporarily unavailable和进程描述符之间的关系

-bash: fork: retry: Resource temporarily unavailable

Linux ssh bash fork 重试:没有子进程

关于Linux的fork()?

linux创建进程fork的方法步骤