I have /etc/security/limits.conf, that seems not been applied:

a soft nofile 1048576 # default: 1024
a hard nofile 2097152
a soft noproc 262144  # default 128039
a hard noproc 524288  

Where a is my username, when I run ulimit -Hn and ulimit -Sn, it shows:


There's only one other file in the /etc/security/limits.d that the content is:

scylla  -  core     unlimited
scylla  -  memlock  unlimited
scylla  -  nofile   200000
scylla  -  as       unlimited
scylla  -  nproc    8096

I tried also append those values to /etc/security/limits.conf then restarting, and do this:

echo '
session required pam_limits.so
' | sudo tee -a /etc/pam.d/common-session

but it didn't work. My OS is Ubuntu 17.04.


2 Answers 2



There's a bug since Ubuntu 16 apparently.


  1. Edit /etc/systemd/user.conf for the soft limit, and add DefaultLimitNOFILE=1048576.
  2. Edit /etc/systemd/system.conf for the soft limit, and add DefaultLimitNOFILE=2097152.

Credit goes to @mkasberg.

  • After these settings, do we need restart?
    – Mahesh
    Jan 23, 2018 at 17:22
  • 1
    Yes, a restart was required when I tried it. Jan 24, 2018 at 13:05

An alternative for those who prefer not to edit the default /etc/systemd/system.conf and /etc/systemd/user/conf files:

  1. create a new file /etc/systemd/system.conf.d/limits.conf with these contents:

  2. run systemctl daemon-reexec as root

  3. logout and login again

  4. check your new limits with either ulimit -a or ulimit -n and ulimit -u for max open files and max processes, respectively.

Refer to the systemd-system.conf manpage for details.

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.