Zgodnie z dokumentacją jądra , /proc/sys/file-max
to maksymalna, łączna, globalna liczba deskryptorów jądro przydzieli przed zadławienia. To jest limit jądra, a nie twój aktualny użytkownik. Więc można otworzyć 590432, pod warunkiem, że jesteś sam w systemie bezczynności (tryb pojedynczego użytkownika, żadne demony uruchomiony).
Pamiętaj, że dokumentacja jest nieaktualna: plik był już proc/sys/fs/file-max
od dawna. Podziękowania dla Martina Jambona za zwrócenie na to uwagi.
Różnicę między miękkimi i twardymi limitami można znaleźć tutaj, na SE . Możesz podnieść lub obniżyć miękki limit jako zwykły użytkownik, pod warunkiem, że nie przekroczysz twardego limitu. Możesz także obniżyć twardy limit (ale nie możesz go ponownie podnieść dla tego procesu). Jako superużytkownik możesz podnosić i obniżać zarówno twarde, jak i miękkie limity. Schemat podwójnego limitu służy do egzekwowania zasad systemowych, ale umożliwia także zwykłym użytkownikom ustalanie limitów tymczasowych dla siebie, a następnie ich zmianę.
Pamiętaj, że jeśli spróbujesz obniżyć twardy limit poniżej miękkiego limitu (a nie jesteś superużytkownikiem), EINVAL
wrócisz (Nieprawidłowy argument).
Więc w twoim konkretnym przypadku ulimit
(który jest taki sam jak ulimit -Sf
) mówi, że nie masz miękkiego limitu na rozmiaru plików zapisywanych przez powłokę i jej podprocesy . (to prawdopodobnie dobry pomysł w większości przypadków)
Twój innych inwokacja, ulimit -Hn
raporty dotyczące -n
limitu (maksymalna liczba otwartych deskryptorów plików), nie-f
granicznego, dlatego miękkie ograniczenie wydaje się wyższy niż twardego limitu. Jeśli wejdziesz ulimit -Hf
, otrzymasz również „nieograniczony”.
/proc/sys/fs/file-max
.