nproc和ulimit之间的区别?

时间:2012-12-14 08:31:24

标签: linux unix

Ulimit和nproc都用于限制* nix系统中特定用户或应用程序的系统进程和资源(如果我错了,请纠正我)。这两者之间的主要区别是什么?

2 个答案:

答案 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)完全不同,但只列出了可用的处理器数量。