-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这个值,即可。

浙公网安备 33010602011771号