6

How do i increase the file limit for the asterisk daemon on my ubuntu computer? When I login as root and use the ulimit, it says unlimited already. I can't login as asterisk because that user doesn't have shell access, it's just a daemon.

I can see in /proc/<asterisk proc id>/limits the current Max open files is 1024. I want to double that.

I even went into /etc/security/limit.conf and added

asterisk soft nofile 2048
asterisk hard nofile 2048
@asterisk soft nofile 2048
@asterisk hard nofile 2048

THen I reboot server. Still, the max open files is 1024.

What else can I do?

3

You could always edit the /etc/init.d/asterisk file and prepend ulimit -n 2048 to the top.

This is the same process that MySQL, Varnish and a few others use.

  • superb!!! it wored – John May 18 '13 at 12:28
  • @Ben Lessani. May i know where to paste 'ulimit -n 2048' in /etc/init.d/asterisk file. Inside start function or outside all methods? – Ijas Ahamed Jan 19 '16 at 10:57
  • At the top of the script, after the LSB data – Ben Lessani - Sonassi Jan 19 '16 at 10:58
2

I had this exact issue for anyone stumbling across this in the future (is it chrome?)

The system that I was having the issue on was Debian rather than Ubuntu, but hey, close enough.

I had to use the following in '/etc/security/limits.conf' to get it working, as specifying the user & group didn't work.

*               soft    nofile          10240
*               hard    nofile          10240

Logging in and out again applies this change.

  • What does logging in and out have to do with a specific running daemon? Do you mean "restart the service", or...? – Tom Wadley Sep 19 '14 at 10:05
1

It is better to edit the configurations in /usr/sbin/safe_asterisk instead on editing init.d script.

you can set many parameters (PRIORITY, SYSMAXFILES, MAXFILES ...). Uncomment SYSMAXFILES and MAXFILES; and increase their values.

  • Directly edit the executable? Then the changes will be lost the next time the executable gets updated. Configuration changes should go in config files. – Andrew Schulman Nov 21 '14 at 16:22
  • That's no more of an executable than is /etc/rc.d/init.d/asterisk which was accepted, so, have an upvote. I find this method to be rather reliable. – dougBTV Aug 20 '15 at 19:13
  • @ItsMe; I Think you have the best answer, i have tried all other alternatives without success, but your solution is radical and clean. Thank's – elhadi d Nov 30 '16 at 8:43
1

In Asterisk 11 (I've not checked others) this is set with the maxfiles directive in the [general] section of asterisk.conf. None of the other answers worked for me on Debian.

1

For Asterisk running under systemd (e.g. on Debian 9), you need to create a systemd override file:

mkdir /etc/systemd/system/asterisk.service.d/

Create /etc/systemd/system/asterisk.service.d/override.conf with the following contents:

[Service]
LimitNOFILE=100000

Reload the unit:

systemctl daemon-reload

Restart Asterisk:

systemctl restart astertisk

Check the limit:

cat /proc/<your asterisk PID>/limits | grep '^Max open files'

Your Answer

By clicking "Post Your Answer", you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.