limit.conf 中的 nproc 是指进程数还是线程数?

Lir*_*hen 5 linux thread ulimit

如果我想检查是否达到了 nproc 值的最大值,我应该这样做:

ps -ef | wc -l
Run Code Online (Sandbox Code Playgroud)

或者

ps -efL | wc -l
Run Code Online (Sandbox Code Playgroud)

nproc inlimits.conf是指进程数还是线程数?

Ste*_*itt 8

在 Linux 上,它指的是线程数。From setrlimit(2)(用于设置限制的系统调用):

RLIMIT_NPROC

可以为调用进程的真实用户 ID 创建的最大进程数(或更准确地说,在 Linux 上为线程)。遇到此限制时,fork(2) 失败并显示错误EAGAIN。对于具有CAP_SYS_ADMIN或CAP_SYS_RESOURCE功能的进程,不会强制执行此限制。

所以ps -efL | wc -l会更合适,但是limits.conf每个登录会话的应用限制(limits.conf(5)有关详细信息,请参阅)。

  • 其他限制确实适用于 `root`,例如 `core`。`nproc` 不适用于 `root`,而不是所有限制。 (2认同)