В файлах запуска системы / сценариях запуска оболочки нет конфигурации ulimit.
ulimit -a
шоу:
-u: processes 1064
-n: file descriptors 256
launchctl limit
шоу:
maxproc 2048 2048
maxfiles 2048 2048
Я смутно помню, что пределы launchctl должны совпадать с выводом ulimit оболочки, я могу ошибаться.
Есть ли связь между пределами lauchctl и ulimit?
Ответы:
В оболочке ulimit обеспечивает «контроль над ресурсами, доступными для оболочки и запускаемыми ею процессами» (см.
man bash
). Следовательно, это относится только к оболочке и ее дочерним элементам. Ограничения для launchd связаны с ним и процессами, которыми он управляет. Два отдельных.Отдельные программы могут устанавливать свои собственные ограничения на ресурсы, вызывая подпрограммы Standard C Library
ulimit()
илиgetrlimit()
и иsetrlimit()
. Определенные ограничения ресурсов не могут быть повышены, если процесс не выполняется от имени суперпользователя.В качестве практического примера я отлаживаю большие программные проекты, и ограничение по умолчанию для количества открытых файлов в оболочке недостаточно велико. В моем файле .bashrc у меня есть следующее:
Теперь мой отладчик не будет жаловаться, что он не может открыть все нужные ему файлы. Очевидно, что это не должно повлиять на запуск.
источник
launchctl limit
; хотя пользователь может изменить номера ulimit, однако они не могут превышатьlaunchctl limit
жесткие ограничения.