12

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

4

2 回答 2

19

nprocfromcoreutils打印处理器的数量。来自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
于 2012-12-14T08:36:26.587 回答
1
 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 则完全不同,它只列出了可用的处理器数量。

于 2012-12-14T08:39:41.307 回答