如何在linux中更改用户的最大fork进程数

use*_*320 8 linux bash shell

每当我登录shell时,都会收到此错误

-bash: fork: Resource temporarily unavailable
-bash-3.2$
Run Code Online (Sandbox Code Playgroud)

我似乎无法执行任何使用fork().

我尝试过,ulimit -u因为它不使用 fork 并且返回了35. 不知何故,我的最大进程设置为35.

我想增加它,但我不知道在哪里进行更改。

小智 11

如果您只想更改该 shell 的限制,您可以运行:

sudo ulimit -u 1000
Run Code Online (Sandbox Code Playgroud)

如果要进行更永久的更改,则需要编辑/etc/limits.conf/etc/security/limits.conf(取决于您的 linux 发行版)并添加以下行:

username hard nproc 1000
Run Code Online (Sandbox Code Playgroud)

替换username为实际用户名

如果您在组名前加上@. 如果您使用*它,它将是所有用户的默认设置

例子:

myuser hard nproc 1000
@mygroup hard nproc 3000
*    hard nproc 500
Run Code Online (Sandbox Code Playgroud)


小智 3

这可以在 中更改/etc/security/limits.conf。查找以下形式的行:

username hard nproc 25
@groupname hard nproc 100
Run Code Online (Sandbox Code Playgroud)

这些行将username用户限制为 25 个进程,将组中的用户groupname限制为 100 个进程。不过,您需要机器的 root 权限。