Vždy můžete upravit /etc/init.d/asterisk
soubor a před něj přidejte ulimit -n 2048
nahoru.
Toto je stejný proces, který používá MySQL, Varnish a několik dalších.
Pro Asterisk běžící pod systemd (např. na Debianu 9) musíte vytvořit soubor přepisu systemd:
mkdir /etc/systemd/system/asterisk.service.d/
Vytvořte /etc/systemd/system/asterisk.service.d/override.conf
s následujícím obsahem:
[Service]
LimitNOFILE=100000
Znovu načtěte jednotku:
systemctl daemon-reload
Restartujte hvězdičku:
systemctl restart astertisk
Zkontrolujte limit:
cat /proc/<your asterisk PID>/limits | grep '^Max open files'
Měl jsem přesně tento problém pro každého, kdo na to v budoucnu narazí (je to chrome?)
Systém, na kterém jsem měl problém, byl spíše Debian než Ubuntu, ale hej, dost blízko.
Aby to fungovalo, musel jsem v '/etc/security/limits.conf' použít následující, protože určení uživatele a skupiny nefungovalo.
* soft nofile 10240
* hard nofile 10240
Přihlášením a opětovným odhlášením se tato změna projeví.