ustawienie limitu deskryptora pliku open.conf nie jest odczytywane przez ulimit, nawet jeśli wymagane jest pam_limits.so

16

Próbuję podnieść maksymalną wartość deskryptora otwartego pliku dla wszystkich użytkowników na komputerze z systemem Ubuntu.

Dodałem następujące linie do /etc/security/limits.conf:

*               soft    nofile           100000
*               hard    nofile           100000

Na podstawie tego pytania sprawdziłem /etc/pam.confustawienia dla pam_limits:

$ grep "pam_limits" /etc/pam.d/*
/etc/pam.d/atd:session    required   pam_limits.so
/etc/pam.d/common-session:session required pam_limits.so
/etc/pam.d/cron:session    required   pam_limits.so
/etc/pam.d/login:session    required   pam_limits.so
/etc/pam.d/sshd:session    required     pam_limits.so
/etc/pam.d/su:session    required   pam_limits.so
/etc/pam.d/sudo:session required pam_limits.so

A moja maksymalna liczba plików wydaje się być w porządku:

$ cat /proc/sys/fs/file-max 
762659

Mimo to nadal mam domyślną 1024, gdy sprawdzam ulimit -a:

$ ulimit -a | grep files
open files                      (-n) 1024

Co jeszcze mogę sprawdzić?

bantyczny
źródło
Ponadto, podobnie jak dodatkowe wyjaśnienie: A ulimit -n 100000działa zgodnie z oczekiwaniami (chociaż nie pomaga mi to, ponieważ utrzymuje się tylko w bieżącej sesji logowania).
bantic

Odpowiedzi:

12

Doszedłem do wniosku, że system nie lubi symbolu wieloznacznego dla użytkownika w limits.conf. Zmieniłem to na: root soft nofile 100000i root hard nofile 100000działało dobrze.

bantyczny
źródło
To musi być błąd w Ubuntu. Sprawdziłem, czy symbole wieloznaczne działają w Fedorze 14.
Mark Wagner
13
Symbole wieloznaczne działają, ale nie wpływają na konto root. manpages.ubuntu.com/manpages/natty/en/man5/limits.conf.5.html mówiNOTE: group and wildcard limits are not applied to the root user. To set a limit for the root user, this field must contain the literal username root.
Stobor