У меня была такая же проблема с ошибкой, как и этот и этот вопрос (оба из которых я читал и понимал), сообщение:
$ ulimit -n 20000 ulimit: bad limit: Operation not permitted
Я столкнулся с этой проблемой во FreeBSD 8.3 после обновления с 7.3 и подумал, что это может иметь какое-то отношение к обновлению.
У меня также были всевозможные проблемы, выполняющие команду как root, и могли запускать ее только как стандартный пользователь, чего я хотел в любом случае.
Проблема в том, что с FreeBSD команда limit
, а не ulimit
.
Когда я работал как обычный пользователь:
%limits -n 20000
Я получил точный результат, который я хотел, чтобы увеличить лимит openfile с 11095 до 20000, или так я думал.
Выход был:
Resource limits (current): openfiles 20000
Однако, когда я снова запустил команду limit, limit
отображается на 11095.
Как изменить либо жесткий / мягкий предел на поле FreeBSD 8.3?
Существует общий предел, установленный sysctl kern.maxfilesperproc
.
Чтобы изменить это, отредактируйте /etc/sysctl.conf
чтобы включить что-то вроде:
kern.maxfilesperproc=yourchosenvalue
Затем service sysctl restart
Возможно, вам придется снова войти в систему или перезагрузиться, чтобы увидеть новый максимум.