Как различные значения ulimit для набора процесса?

Как различные ulimit значения для процесса установлены? Я особенно интересуюсь количеством открытых дескрипторов файлов. Как это установлено для данного процесса? Если это основано на пользователе, который запустил процесс затем, как это установлено для пользователя?

Как я могу установить эти пределы для конкретного пользователя?

1
задан 28 August 2015 в 06:12

2 ответа

Если Вы не изменили значение никакого ресурса, показанного ulimit, это использовало бы значение по умолчанию, которое является тем, что Вы видите при выполнении встроенной оболочки ulimit -a. Обратите внимание, что системный вызов inolved в получении значения getrlimit(2).

Снова, если необходимо изменить значение, необходимо использовать setrlimit(2) системный вызов, ulimit делает точно это при установлении нового resoure предела для процессов.

Пределы ресурса, показанные в ulimit применяются на отдельные процессы, не пользователей.

Для устанавливания нового значения для количества открытых дескрипторов файлов (значение по умолчанию 1024) для каждого процесса можно использовать:

ulimit -n 512

Обратите внимание, что можно проверить жесткий предел и мягкие пределы с ulimit -Hn и ulimit -Sn соответственно. Можно уменьшиться к любому значению и увеличению до жесткого предела.

Для увеличения предела вне текущего жесткого предела (1024), необходимо быть корнем.

Обратите внимание, что Вы не можете увеличить значение вне указанного максимума ядра.

Теперь существует файл /etc/security/limits.conf это используется pam конкретно pam_limits.so на запуск каждого сеанса пользователя можно установить значения здесь для взятия постоянного эффекта как ulimit установленные значения только для рабочей сессии.

Хотя необходимо установить значения на этом файле на основе пользователя/группы, пределы применимы на для каждого процесса при том пользователе/группе кроме некоторых объектов как maxsyslogins, maxlogins. /etc/security/limits.conf имеет достаточное описание в файле для запущения Вас.

Также проверьте help ulimit, man 2 setrlimit получить больше идеи.

3
ответ дан 1 October 2019 в 03:23

Это - POSIX - см. man 3 sysconf

NAME
       sysconf - get configuration information at run time

SYNOPSIS
       #include <unistd.h>

       long sysconf(int name);

DESCRIPTION
       POSIX  allows  an  application  to  test at compile or run time whether
       certain options  are  supported,  or  what  the  value  is  of  certain
       configurable constants or limits.

       At  compile time this is done by including <unistd.h> and/or <limits.h>
       and testing the value of certain macros.

       At run time, one  can  ask  for  numerical  values  using  the  present
       function  sysconf().   One can ask for numerical values that may depend
       on the filesystem a  file  is  in  using  the  calls  fpathconf(3)  and
       pathconf(3).  One can ask for string values using confstr(3).

       The  values  obtained  from  these  functions  are system configuration
       constants.  They do not change during the lifetime of a process.  

       ...<snip>... 

       OPEN_MAX - _SC_OPEN_MAX
              The  maximum number of files that a process can have open at any
              time.  Must not be less than _POSIX_OPEN_MAX (20).
-4
ответ дан 1 October 2019 в 03:23

Другие вопросы по тегам:

Похожие вопросы: