Как мне увеличить лимит файлов для демона звездочки на моем компьютере с Ubuntu? Когда я вхожу в систему как root и использую ulimit, он уже говорит без ограничений. Я не могу войти в систему как звездочку, потому что у этого пользователя нет доступа к оболочке, это просто демон.
Я могу видеть в /proc/<asterisk proc id>/limits
текущее максимальное количество открытых файлов - 1024. Я хочу удвоить это количество.
Я даже зашел в /etc/security/limit.conf и добавил
asterisk soft nofile 2048
asterisk hard nofile 2048
@asterisk soft nofile 2048
@asterisk hard nofile 2048
ТОГДА перезагружаю сервер. Тем не менее, максимальное количество открытых файлов - 1024.
Что еще я могу сделать?
Вы всегда можете отредактировать /etc/init.d/asterisk
файл и добавить ulimit -n 2048
наверх.
Это тот же процесс, который используют MySQL, Varnish и некоторые другие.
У меня была именно эта проблема для тех, кто наткнулся на это в будущем (это хром?)
Система, в которой у меня возникла проблема, была Debian, а не Ubuntu, но, эй, достаточно близко.
Мне пришлось использовать следующее в '/etc/security/limits.conf', чтобы заставить его работать, поскольку указание пользователя и группы не сработало.
* soft nofile 10240
* hard nofile 10240
Это изменение применяется при повторном входе и выходе.
Конфигурации лучше редактировать в /usr/sbin/safe_asterisk
вместо этого при редактировании скрипта init.d.
вы можете установить множество параметров (PRIORITY
, SYSMAXFILES
, MAXFILES
...). Раскомментируйте SYSMAXFILES и MAXFILES; и увеличивают свои ценности.
В Asterisk 11 (другие не проверял) это устанавливается с помощью maxfiles
директива в [general]
раздел asterisk.conf
. Ни один из других ответов не помог мне в Debian.
Для Asterisk, работающего под управлением systemd (например, в Debian 9), вам необходимо создать файл переопределения systemd:
mkdir /etc/systemd/system/asterisk.service.d/
Создайте /etc/systemd/system/asterisk.service.d/override.conf
со следующим содержанием:
[Service]
LimitNOFILE=100000
Перезагрузите агрегат:
systemctl daemon-reload
Перезапустите Asterisk:
systemctl restart astertisk
Проверьте лимит:
cat /proc/<your asterisk PID>/limits | grep '^Max open files'