连接linux服务器报错fork: retry: No child processes解决方案

问题描述

在连接远程服务器时突然遇到fork: retry: No child processes报错,之后重新登录服务器才使用一段时间后又继续报错fork: retry: No child processes


原因分析:

1.可能是用户的线程满了导致的

2.可能是僵尸进程太多导致的

解决方案:

方案一:

使用命令ulimit -a查看

$ 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) 513124
max locked memory       (kbytes, -l) unlimited
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1048576
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) unlimited
stack size              (kbytes, -s) unlimited
cpu time               (seconds, -t) unlimited
max user processes              (-u) 4096
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

可以看到max user processes数为4096,

$ ulimit -u 10000
$ ulimit -u
10000

注:这种方式只能暂时修改进程数,退出服务器之后会自动更改为服务器的默认设置。

要想永久更改需要到配置文件中修改该参数,这需要在root环境下操作

# sudo vi /etc/security/limits.d/20-nproc.conf


# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.

*          soft    nproc     4096
root       soft    nproc     unlimited

将参数4096修改为10000即可

修改进程数到10000可以暂时解决fork: retry: No child processes这个问题。但是过一段时间之后还是会出现fork: retry: No child processes的问题

方案二:

使用top命令查看僵尸进程数

$ top

查找出服务器中的僵尸进程,将其杀死。

$ ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'
Z    169111 170661 [python3.8] <defunct>
Z    169111 170661 [python3.8] <defunct>
...
Z    169111 170661 [python3.8] <defunct>
Z    169111 170661 [python3.8] <defunct>
  • -A:参数列出所有进程
  • -o:自定义输出字段,我们设定显示字段为stat(状态,ppid(父进程pid,pid(进程pid,cmd(命令行)这四个参数
  • 因为状态为 z 或者 Z的进程为僵尸进程,所以我们使用grep抓取stat状态为zZ进程
$ ps aux |grep 169111 |grep -v grep
user   169111  0.0  0.0 141500  9868 ?        Ss   10月27   0:58 0:58 /home/user/anaconda3/envs/drugban/bin/python3.8 /home/user/.pycharm_helpers/generator3/__main__.py -d /home/user/tmp/jY36P3ZorR --init-state-file

可以看到是用户下python的执行文件,可以选择杀死这个僵尸进程

kill -HUP 169111

再重复上述操作,杀死一些无用的僵尸进程

 参考文献:

linux fork: retry: 没有子进程、资源暂时不可用问题解决 - 简书 (jianshu.com)

ヾ(≧▽≦*)o欢迎回来!Linux的普通用户bash突然报错bash fork retry No child processes的解决办法 | 二丫讲梵 (eryajf.net)

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OS error code 0: Success 操作系统错误代码0:成功 OS error code 1: Operation not permitted 操作系统错误代码1:操作不允许 OS error code 2: No such file or directory 操作系统错误代码2:没有这样的文件或目录 OS error code 3: No such process 操作系统错误代码3:没有这样的过程 OS error code 4: Interrupted system call 操作系统错误代码4:中断的系统调用 OS error code 5: Input/output error 操作系统错误代码5:输入/输出错误 OS error code 6: No such device or address 操作系统错误代码6:没有这样的设备或地址 OS error code 7: Argument list too long 操作系统错误代码7:参数列表太长 OS error code 8: Exec format error 操作系统错误代码8:执行格式错误 OS error code 9: Bad file descriptor 操作系统错误代码9:坏的文件描述符 OS error code 10: No child processes 操作系统错误代码10:无子过程 OS error code 11: Resource temporarily unavailable 操作系统错误代码11:资源暂时不可用 OS error code 12: Cannot allocate memory 操作系统错误代码12:无法分配内存 OS error code 13: Permission denied 操作系统错误代码13:权限被拒绝 OS error code 14: Bad address 操作系统错误代码14:错误的地址 OS error code 15: Block device required 操作系统错误代码15:需要块设备 OS error code 16: Device or resource busy 操作系统错误代码16:设备或资源忙 OS error code 17: File exists 操作系统错误代码17:文件已经存在 OS error code 18: Invalid cross-device link 操作系统错误代码18:无效的跨设备链接 OS error code 19: No such device 操作系统错误代码19:没有这样的设备 OS error code 20: Not a directory 操作系统错误代码20:不是一个目录 OS error code 21: Is a directory 操作系统错误代码21:是一个目录 OS error code 22: Invalid argument 操作系统错误代码22:无效参数 OS error code 23: Too many open files in system 操作系统错误代码23:打开太多的文件系统 OS error code 24: Too many open files 操作系统错误代码24:打开的文件太多 OS error code 25: Inappropriate ioctl for device

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值