Назад | Перейти на главную страницу

Как установить ulimit "максимальное количество потоков на процесс" для пользователя без полномочий root?

На странице руководства Ulimit предлагается установить это с помощью параметра -r, но он действителен только для пользователя root, и нет эквивалента для его установки через / etc / security / limits?

Любые идеи?

Вы сказали AIX, но я думаю, что в случае с Linux это будет -u концевой выключатель. В Linux это означает «процессы», но в bash ulimit - это просто интерфейс для системного вызова setrlimit. Это можно увидеть, запустив strace bash -c 'ulimit -u 10' который возвращает:

setrlimit(RLIMIT_NPROC, {rlim_cur=10, rlim_max=10}) = 0

На странице руководства для setrlimit указано:

RLIMIT_NPROC Максимальное количество процессов (или, точнее в Linux, потоки), который может быть создан для реального идентификатора пользователя вызывающего процесса. При достижении этого предела fork (2) выдает ошибку EAGAIN.

Так, может, и в AIX то же самое? Эта ссылка заявляет: «AIX не определяет ресурсы RLIMIT_NPROC или RLIMIT_MEMLOCK.», но вы можете найти более точный ответ на сайте developerworks.

Для проблемы с разрешениями решением может быть установка ограничения с помощью root, а затем su для пользователя, для которого вам нужно увеличить лимит. В прошлом мне приходилось делать это для других ограничений ресурсов, например, для максимального количества открытых файлов. Limits.conf не применялся, поэтому мне пришлось использовать sudo или su от root, а затем ограничение было унаследовано.