ulimit первый звонок ок второй провал, почему? - PullRequest
4 голосов
/ 12 июля 2011

В macosx 10.7 с использованием bash

Первый вызов ulimit -n завершается успешно, а второй - нет.

a:$ ulimit -n 
2560
a:$ ulimit -n 5000
a:$ ulimit -n 
5000
a:$ ulimit -n 6000
bash: ulimit: open files: cannot modify limit: Operation not permitted

однако, если я пытаюсь использовать новую оболочку (или другую оболочку)) ulimit -n 6000, это успешно:

a:$ ulimit -n 
2560
a:$ ulimit -n 6000
a:$ ulimit -n 
6000

Почему это?

1 Ответ

4 голосов
/ 12 июля 2011

со страницы руководства bash:

Жесткий предел не может быть увеличен после его установки; мягкий предел может быть увеличено до значения жесткого лимита. Если ни -H, ни -S не указано, установлены как мягкие, так и жесткие ограничения.

Большинство современных * NIX больше не используют ulimit. Я предполагаю, что в OS X нет установленного ulimit hard max, поэтому ваш первый вызов устанавливает максимальный soft и hard, и поэтому ваш второй вызов каждый раз терпит неудачу. Первый вызов без параметра [limit], вероятно, печатает программный макс.

...