Ulimit 和 nproc 都用于限制 *nix 系统中特定用户或应用程序的系统进程和资源(如果我错了,请纠正我)。两者的主要区别是什么?
2 回答
nproc
fromcoreutils
打印处理器的数量。来自man nproc
:
NPROC(1) User Commands NPROC(1)
NAME
nproc - print the number of processing units available
SYNOPSIS
nproc [OPTION]...
DESCRIPTION
Print the number of processing units available to the current process,
which may be less than the number of online processors
但是,中的nproc
设置/etc/security/limits.conf
确实限制了进程的数量:
来自man limits.conf
:
nproc
maximum number of processes
both are used for limiting the system processes and resources
如果您指的是limits.conf中的nproc 参数,那么是的,它用于限制进程数。
shell 实用程序ulimit也用于获取/设置资源的限制。例如,获取每个进程的堆栈大小:
$ulimit -s
将堆栈大小更改为 1MB:
$ulimit -s 1024
将堆栈大小更改为unlimited
:
$ulimit -s unlimited
/etc/security/limits.conf`` and
通过ulimit设置/更改资源没有区别。
但是,shell 实用程序ulimit
更改仅适用于当前 shell。但是 /etc/security/limits.conf 更改将适用于所有指定用户的系统范围。此外 /etc/security/limits.conf 通常只能由特权用户更改。
但ulimit
不需要特权。
所以你可以把ulimit
资源限制想成只为你临时更改,你可以自己更改;而/etc/security/limits.conf
用于系统范围的设置(对于一个或多个用户),您通常无法更改(通常您的系统管理员会设置资源限制,如果有的话)。
而nproc(1)
utliity 则完全不同,它只列出了可用的处理器数量。