增加星号守护进程的文件 ulimit

增加星号守护进程的文件 ulimit

如何增加 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 脚本。

您可以设置许多参数(PRIORITYSYSMAXFILESMAXFILES...)。取消注释 SYSMAXFILES 和 MAXFILES;并增加它们的值。

相关内容