Ulimit и nproc используются для ограничения системных процессов и ресурсов для конкретного пользователя или приложения (исправьте меня, если я ошибаюсь) в системе * nix. В чем заключается основное различие между ними?
Разница между nproc и ulimit?
Ответ 1
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
Ответ 2
both are used for limiting the system processes and resources
Если вы ссылаетесь на параметр nproc в limit.conf, тогда да для ограничения количества процессов.
Утилита оболочки ulimit также используется для получения/установки ограничений ресурсов. Например, получение размера стека для каждого процесса:
$ulimit -s
Изменение размера стека до 1 МБ:
$ulimit -s 1024
Изменение размера стека на unlimited
:
$ulimit -s unlimited
Нет разницы между настройкой/изменением ресурсов через /etc/security/limits.conf'' and
ulimit '.
Однако изменения ulimit
утилиты оболочки применимы только к текущей оболочке. Но изменения /etc/security/limits.conf будут применимы ко всей системе для всех указанных пользователей. Кроме того /etc/security/limits.conf обычно может быть изменен только привилегированными пользователями.
Но ulimit
не требует привилегий.
Таким образом, вы можете думать о ulimit
как о временных изменениях в ресурсах только для вас, которые вы можете изменить сами; тогда как /etc/security/limits.conf
предназначен для общесистемных настроек (для одного или нескольких пользователей), которые вы обычно не можете изменить (обычно системные администраторы устанавливают лимиты ресурсов, если таковые имеются).
Принимая во внимание, что nproc(1)
utliity совершенно другой, он просто перечисляет доступное количество процессоров.