如何增加 ubuntu 计算机上的 asterisk 守护进程的文件限制?当我以 root 身份登录并使用 ulimit 时,它已经显示无限制。我无法以 asterisk 身份登录,因为该用户没有 shell 访问权限,它只是一个守护进程。
我看到/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。
我还可以做些什么?
答案1
您可以随时编辑该/etc/init.d/asterisk
文件并将其添加ulimit -n 2048
到顶部。
这与 MySQL、Varnish 和其他一些程序所使用的过程相同。
答案2
对于在 systemd 下运行的 Asterisk(例如在 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'
答案3
我遇到了同样的问题,以后有人会偶然遇到这个问题(是 chrome 吗?)
我遇到问题的系统是 Debian 而不是 Ubuntu,但是,足够接近了。
我必须在“/etc/security/limits.conf”中使用以下内容才能使其工作,因为指定用户和组不起作用。
* soft nofile 10240
* hard nofile 10240
再次登录并退出即可应用此更改。
答案4
最好编辑配置,/usr/sbin/safe_asterisk
而不是编辑 init.d 脚本。
您可以设置许多参数(PRIORITY
、SYSMAXFILES
、MAXFILES
...)。取消注释 SYSMAXFILES 和 MAXFILES;并增加它们的值。