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命令报错:
1
2
|
$ls
-bash: fork: retry: Resource temporarily unavailable
|
上面这段错误提示的本质是Linux操作系统无法创建更多进程,导致出错。
因此要解决这个问题需要修改Linux允许创建更多的进程。
修改Linux最大进程数
我们可以通过ulimit -a来查看当前Linux系统的一些系统参数。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 62357
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 65536
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 1024
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
|
在上面这些参数中,通常我们关注得比较多的是一个进程可打开的最大文件数,即open files。
系统允许创建的最大进程数量即是max user processes 这个参数。
我们可以使用 ulimit -u 4096 修改max user processes的值,但是只能在当前终端的这个session里面生效,重新登录后仍然是使用系统默认值。
正确的修改方式是修改/etc/security/limits.d/90-nproc.conf文件中的值。
1
2
3
4
5
6
|
$ cat /etc/security/limits.d/90-nproc.conf
# Default limit for number of user‘s processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
* soft nproc 4096
|
我们只要修改上面文件中的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和进程描述符之间的关系