Использование команды ulimit
только изменяет лимиты ресурсов для текущей оболочки и ее дочерних процессов, а команда sudo ulimit
создает корневую оболочку, настраивает ее лимиты, а затем выходит (таким образом, насколько я вижу, никакого реального эффекта нет).
Чтобы превысить 12288, вам нужно настроить параметры ядра kern.maxfiles
и kern.maxfilesperproc
, а также (по крайней мере, в соответствии с этой записью в блоге , которая является кратким изложением этого обсуждения ) лимит запуска. Вы можете использовать launchctl limit
для настройки всех этих параметров одновременно:
sudo launchctl limit maxfiles 1000000 1000000
Чтобы сделать это постоянным (т.е. не сбрасывать при перезагрузке), создайте /etc/launchd.conf
, содержащий:
limit maxfiles 1000000 1000000
Then вы можете использовать ulimit
(но без sudo
) для настройки лимита вашего процесса.
Если этого не происходит, вы можете столкнуться с ограничениями по размеру в ядре. Если ваша модель поддерживает это , то может помочь загрузка ядра в 64-битном режиме .