linux nproc和ulimit的区别

i5desfxk  于 2023-05-16  发布在  Linux
关注(0)|答案(2)|浏览(189)

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

hc8w905p

hc8w905p1#

nproc有两个不同的示例。
nproc from 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

但是/etc/security/limits.conf中的nproc设置确实限制了进程数量

man limits.conf

nproc
           maximum number of processes
6jjcrrmo

6jjcrrmo2#

both are used for limiting the system processes and resources

如果你指的是limits.conf中的nproc参数,那么是的,它是用来限制进程数量的。
shell实用程序ulimit也用于获取/设置资源的限制。例如,获取每个进程的堆栈大小:

$ulimit -s

将堆栈大小更改为1 MB:

$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则完全不同,它只是列出了可用的处理器数量。

相关问题