前几天同事反映登录Linux服务器后,输入其他命令时系统显示如下代码:-bash:fork:retry:Resourcetemporarilyunavailable问题分析其实会出现这种现象。本质原因是Linux操作系统无法创建更多的进程,导致错误。知道了问题的原因,让Linux允许创建更多的进程。修改linux最大进程数,在服务器上执行ulimit-a可以看到如下结果:[oracle@oradb1~]$ulimit-acorefilesize(blocks,-c)0datasegsize(kbytes,-d)unlimitedscheduling优先级(-e)0文件大小(块,-f)无限挂起的信号(-i)1033243最大锁定内存(千字节,-l)64最大内存大小(千字节,-m)无限打开文件(-n)1024管道大小(512字节,-p)8POSIX消息队列(字节,-q)819200实时优先级(-r)0堆栈大小(千字节,-s)10240cpu时间(秒,-t)无限最大用户进程(-u)2047虚拟内存(千字节,-v)unlimitedfilelocks(-x)unlimitedopenfiles(-n)1024的值是我们要修改的地方。我们比较关注的是一个进程最多可以打开的文件数,也就是打开的文件数。系统允许创建的最大进程数是参数maxuserprocesses。问题解决我们可以使用ulimit-u4096修改maxuserprocesses的值,但是只能在当前终端的本次会话中生效,重新登录后仍然使用系统默认值。正确的修改方法是修改/etc/security/limits.d/90-nproc.conf文件中的值。[oracle@oradb1~]$cat/etc/security/limits.d/90-nproc.conf#用户进程数的默认限制,以防止#accidentalforkbombs。#请参阅rhbz#432903进行推理。*softnproc4096rootsoftnproc无限
