Ich habe einen Prozess, der als Gearman-Benutzer ausgeführt wird, und ich möchte ihn ändern open files
, um diesen unangenehmen Fehler zu vermeiden:
FEHLER 2014-09-12 17: 49: 14.000000 [main] accept (Zu viele offene Dateien) -> libgearman-server / gearmand.cc: 788
Wie kann ich ulimit unter Ubuntu als anderer Benutzer ausführen und geöffnete Dateien ändern? Ich melde mich derzeit nicht als Gearman an, habe aber Root-Zugriff. Ich habe versucht, dies zu tun:
su gearman --shell /bin/bash --command "ulimit -n"
wie hier empfohlen wird aber nix ausgegeben:
$ su gearman --shell /bin/bash --command "ulimit -n"
Password:
$
Wenn Sie den
ulimit
Befehl ausführen, wirkt sich dies nur auf den ausgeführten Prozessulimit
(die Shell) und alle Unterprozesse aus. Wenn Sie also ausführenbash --command "ulimit -n"
, wirkt sich dies nur auf die Anzahl der geöffneten Dateien für diese Bash-Instanz aus. Bash wird dann beendet, sodass zukünftige Prozesse nicht betroffen sind.Um das zu erreichen, was Sie möchten (um das Limit für offene Dateien für Ihren tatsächlichen Prozess zu erhöhen), ist es wahrscheinlich sinnvoller,
limits.conf
Änderungen vorzunehmen, um das Limit für offene Dateien für Ihren speziellen Gearman-Benutzer zu erhöhen.Beispiele für limits.conf finden Sie an anderer Stelle oder hier .
quelle
more /proc/<proc_id>/limits
... Vielleicht lohnt es sich, eine Antwort hinzuzufügen/etc/security/limits.conf
Versuchen Sie es mit
su - <USERNAME> -c ulimit' -Hn'
. Ich habe es gerade auf CEntOS 7 getestet und es funktioniert.quelle
<USERNAME>
sich nicht anmelden können (hat die Nologin-Shell).