Ich kann das nofile
Limit für Nicht-Root-Benutzer unter Ubuntu 14.04 anscheinend nicht erhöhen , obwohl ich jeder StackExchange-Antwort zu diesem Problem folge. Bisher habe ich:
$ cat /etc/security/limits.d/custom.conf
@www-data hard nofile 50000
@www-data soft nofile 50000
# even tried specifying the username directly:
myuser hard nofile 50000
myuser soft nofile 50000
$ grep 'limits' /etc/pam.d/common-session*
/etc/pam.d/common-session:session required pam_limits.so
/etc/pam.d/common-session-noninteractive:session required pam_limits.so
$ cat /proc/sys/fs/file-max
101232
Neu gestartet, angemeldet und:
$ ulimit -n 4097
-bash: ulimit: open files: cannot modify limit: Operation not permitted
Es scheint immer noch irgendwie ein Limit von maximal 4096 für Nicht-Root-Benutzer zu geben.
Antworten:
Mit Ubuntu 14.04 habe ich das beschriebene Hard Limit erreicht:
Ich könnte es mit ulimit senken, aber nicht erhöhen, so wie es die Frage beschreibt. Wie im Handbuch von ulimit beschrieben:
Also habe ich versucht, ein höheres Limit
/etc/security/limits.conf
wie folgt festzulegen :und ein
ssh localhost -l user
neues Login wie gab mir das neue Limit:Hoffe das funktioniert auch bei dir.
quelle
/etc/security/limits*
Wird von Ihrem Anmeldemechanismus nicht gelesen - aus noch unbekannten Gründen. 2. Ihr hartes Limit wird an anderer Stelle auf 4096 festgelegt und "nur root kann sich erhöhen ...". Sie können Ihre Profile wie.bashrc
(abhängig von Ihrer Shell) überprüfen oder/etc
nach anderen Stellen suchen, an denen Grenzwerte festgelegt werden können, wie zfind /etc | grep -e ulimit -e 4096 -e nofile
. Übrigens: Hast du es mit ssh versucht? Und: Haben Sie sich/etc/ssh/sshd.conf
aus irgendeinem Grund geändert , um PAM zu vermeiden?/etc/security/limits*
- Sie könnten versuchen, PAM zu aktivieren, um dies zu überprüfen. Ich werde versuchen, PAM zu deaktivieren, um zu sehen, welchen Unterschied es macht, und die Ergebnisse melden. --- Ja! das ist es! Bei deaktiviertem PAM liegt mein Limit ebenfalls bei 4096, obwohl es auf 9999 Zoll eingestellt ist/etc/security/limits.conf
.Ich denke, dieser Artikel befasst sich mit Ihrem Problem.
Grundsätzlich sollten Sie den Befehl ulimit verwenden, um die verfügbaren Ressourcen zu erhöhen.
Zum Beispiel:
Verwenden Sie den folgenden Befehl, um die maximale Anzahl geöffneter Dateideskriptoren anzuzeigen:
Geben Sie den folgenden Befehl ein, um die harten und weichen Werte anzuzeigen:
Geben Sie den folgenden Befehl ein, um die Hard- und Soft-Werte für httpd- oder Oracle-Benutzer anzuzeigen:
Um die Anzahl der maximalen Dateien festzulegen, können Sie die maximale Anzahl geöffneter Dateien erhöhen, indem Sie einen neuen Wert in der Kernelvariablen / proc / sys / fs / file-max wie folgt festlegen (als Root anmelden):
Der obige Befehl erzwingt das Limit auf 100000 Dateien. Sie müssen die
/etc/sysctl.conf
Datei bearbeiten und die folgende Zeile einfügen, damit die Einstellung nach dem Neustart unverändert bleibt. Fügen Sie dazu eine Konfigurationsanweisung wie folgt hinzu:Speichern und schließen Sie die Datei. Benutzer müssen sich abmelden und erneut anmelden, damit Änderungen wirksam werden, oder einfach den folgenden Befehl eingeben:
Überprüfen Sie Ihre Einstellungen mit dem Befehl:
oder:
Mit dem obigen Verfahren werden systemweite FD-Grenzwerte
httpd
( File Descriptors) festgelegt. Sie können den Benutzer (oder einen anderen Benutzer) jedoch auf bestimmte Grenzwerte beschränken, indem Sie die/etc/security/limits.conf
Datei durch Bearbeiten bearbeiten/etc/security/limits.conf
und die Grenzwerte wie folgt festlegen:Dann überprüfen Sie sie durch:
Wenn Sie das Problem bei anderen Linux-Distributionen haben, überprüfen Sie das
/etc/pam.d/login
und stellen Sie sicher, dass Siepam_limits.so
aktiviert sind, zquelle
Wenn es sich um einen Dienst handelt, können Sie versuchen, das Limit in
/etc/systemd/system/{ServiceName}.service
add festzulegenLimitNOFILE=65536
quelle