OK, das habe ich endlich herausgefunden. Die Grenzen, die ich in /etc/security/limits.conf
gesetzt habe wurden angewendet, aber nicht auf die grafische Anmeldung. Dies kann wie folgt in einem Terminalfenster überprüft werden:
$ ulimit -n
4096
$ su mkasberg
Password:
$ ulimit -n
65535
Weitere Recherchen führten mich zu diesem Fehlerbericht, der mich in die richtige Richtung wies. Um das Limit zu ändern, das von der Login-Shell verwendet wird, müssen wir die folgende Zeile zu /etc/systemd/user.conf
hinzufügen :
DefaultLimitNOFILE=65535
Diese Änderung funktioniert, wirkt sich aber nur auf das Softlimit aus. (Lassen Sie uns immer noch mit einem harten Limit von 4096 gedeckelt.) Um auch das harte Limit zu beeinflussen, müssen wir /etc/systemd/system.conf
ändern mit der gleichen Änderung.
Die Änderungen, die ich in /etc/pam.d
vorgenommen habe waren nicht nötig. Zumindest unter Ubuntu funktioniert das schon. Außerdem war es nicht erforderlich, die Einstellungen für root
zu ändern und *
in der limit.conf. Grenzwerte für mkasberg
ändern war ausreichend, zumindest für meinen Anwendungsfall.
Zusammenfassung
Wenn Sie das von ulimit -n
angezeigte Limit erhöhen möchten , sollten Sie:
-
Ändern Sie
/etc/systemd/user.conf
und/etc/systemd/system.conf
mit der folgenden Zeile (dies kümmert sich um die grafische Anmeldung):DefaultLimitNOFILE=65535
-
Ändern Sie
/etc/security/limits.conf
mit den folgenden Zeilen (dies kümmert sich um die Nicht-GUI-Anmeldung):mkasberg hard nofile 65535 mkasberg soft nofile 65535
-
Starten Sie Ihren Computer neu, damit die Änderungen wirksam werden.
In /etc/security/limits.conf
muss nichts geändert werden Datei, wird sie ignoriert, wenn Sie systemd verwenden.
(Wiedergabe einer modifizierten Antwort auf eine andere Frage im Netzwerk...)
Eine Alternative für diejenigen, die den Standardwert /etc/systemd/system.conf
nicht bearbeiten möchten und /etc/systemd/user/conf
Dateien:
-
Erstellen Sie eine neue Datei
/etc/systemd/system.conf.d/limits.conf
mit diesem Inhalt:[Manager] DefaultLimitNOFILE=65535
-
Führen Sie
systemctl daemon-reexec
aus als root -
abmelden und erneut anmelden
-
Überprüfen Sie Ihr neues Limit mit
ulimit -n
.
Siehe systemd-system.conf
Manpage für Details.
TL;DRI hatte das Bedürfnis, die Antworten zu konzentrieren, damit sie leichter zu finden sind. Ich habe Ewigkeiten gebraucht, um alle Teile zusammenzufügen, damit es richtig funktioniert ...
Es gibt 2 Standorte, die berücksichtigt werden müssen.
-
GUI-Sitzung
$ grep DefaultLimitNOFILE /etc/systemd/system.conf DefaultLimitNOFILE=65535
oder besser hier:
$ grep NOFILE /etc/systemd/system.conf.d/limits.conf DefaultLimitNOFILE=65535
-
Shell-Umgebung
$ grep nofile /etc/security/limits.conf user soft nofile 65535 user hard nofile 65535`
oder besser hier:
$ grep nofile /etc/security/limits.d/user.conf user soft nofile 65535 user hard nofile 65535
-
Nachdem Sie die Einstellungen in den obigen Dateien geändert haben, führen Sie einen Neustart durch und überprüfen Sie dann die Grenzen mit:
ulimit -n -Hn -Sn