Ulimit和nproc都用于限制* nix系统中特定用户或应用程序的系统进程和资源(如果我错了,请纠正我)。这两者之间的主要区别是什么?
答案 0 :(得分:19)
nproc
的 coreutils
打印处理器数量。来自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
答案 1 :(得分:0)
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)
完全不同,但只列出了可用的处理器数量。