GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Das Limit für offene Dateien kann nicht über 4096 hinaus erhöht werden (Ubuntu)

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:

  1. Erstellen Sie eine neue Datei /etc/systemd/system.conf.d/limits.conf mit diesem Inhalt:

    [Manager]
    DefaultLimitNOFILE=65535
    
  2. Führen Sie systemctl daemon-reexec aus als root

  3. abmelden und erneut anmelden

  4. Ü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.

  1. GUI-Sitzung

    $ grep DefaultLimitNOFILE /etc/systemd/system.conf
    DefaultLimitNOFILE=65535
    

    oder besser hier:

    $ grep NOFILE /etc/systemd/system.conf.d/limits.conf
    DefaultLimitNOFILE=65535
    
  2. 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
    
  3. 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


Linux
  1. C fopen gegen offen

  2. libstdc++.so.5:Shared-Object-Datei kann nicht geöffnet werden - aber Bibliothek ist installiert und aktuell

  3. Prolog-Programmierung in Ubuntu

  4. libpulse.so.0:Shared-Object-Datei kann nicht geöffnet werden:Keine solche Datei oder Verzeichnis

  5. ImportError:libtk8.6.so:Shared-Object-Datei kann nicht geöffnet werden:Keine solche Datei oder Verzeichnis

So öffnen Sie ISO-Dateien unter Ubuntu Linux

So erhöhen Sie das Limit für die Anzahl der geöffneten Dateien in Linux

So entpacken (öffnen) Sie die Gz-Datei

So ändern Sie das Limit für offene Dateien in Linux

So öffnen Sie den Ubuntu-Dateimanager als Root-Benutzer

libaio.so.1:Shared-Object-Datei kann nicht geöffnet werden