Nach der Kernel - Dokumentation , /proc/sys/file-max
ist die maximale, total, globale Anzahl von Dateideskriptoren die Kernel vor Ersticken zuteilen wird. Dies ist das Kernel-Limit, nicht das Limit Ihres aktuellen Benutzers. Sie können also 590432 öffnen, sofern Sie alleine auf einem inaktiven System sind (Einzelbenutzermodus, keine laufenden Dämonen).
Beachten Sie, dass die Dokumentation nicht mehr aktuell ist: Die Datei wurde proc/sys/fs/file-max
für eine lange Zeit. Vielen Dank an Martin Jambon für diesen Hinweis.
Der Unterschied zwischen weichen und harten Grenzen wird hier auf SE beantwortet . Sie können als normaler Benutzer ein Soft-Limit erhöhen oder senken, sofern Sie das Hard-Limit nicht überschreiten. Sie können auch ein hartes Limit senken (aber Sie können es für diesen Prozess nicht erneut erhöhen). Als Superuser können Sie sowohl Hard- als auch Soft-Limits erhöhen und senken. Das Dual-Limit-Schema wird zum Erzwingen von Systemrichtlinien verwendet, ermöglicht aber auch normalen Benutzern, temporäre Limits für sich selbst festzulegen und diese später zu ändern.
Beachten Sie, dass Sie eine Rückmeldung erhalten, wenn Sie versuchen, ein hartes Limit unter das weiche Limit zu senken (und Sie sind nicht der Superuser) EINVAL
(ungültiges Argument).
In Ihrem speziellen Fall ulimit
(das ist dasselbe wie ulimit -Sf
) gilt also, dass Sie keine weiche Grenze für die Größe der von der Shell und ihren Unterprozessen geschriebenen Dateien haben . (Das ist wahrscheinlich in den meisten Fällen eine gute Idee)
Bei Ihrem anderen Aufruf wird ulimit -Hn
das -n
Limit (maximale Anzahl offener Dateideskriptoren) und nicht das -f
Limit angegeben, weshalb das weiche Limit höher als das harte Limit zu sein scheint. Wenn Sie eingeben, erhalten ulimit -Hf
Sie auch "unbegrenzt".
/proc/sys/fs/file-max
.