Frage

Ich habe das folgende Skript:

cat > /tmp/script.sh <<EndOfScript
#!/bin/sh
ulimit -n 8192
run_app
EndOfScript

, die glatt lokal läuft, ist es immer in Ordnung. Aber wenn ich versuche, es remote über ssh auszuführen:

scp /tmp/script.sh user@host:/tmp/script.sh
ssh user@host "chmod 755 /tmp/script.sh; /tmp/script.sh"

Ich habe den Fehler:

ulimit: open files: cannot modify limit: Operation not permitted

Ich habe auch versucht, den folgenden Befehl ein:

ssh user@host "ulimit -n 8192"

gleiche Fehler.

Es sieht aus wie die ssh Remote-Befehlsausführung wird ein 1024 festgelegte maximale nofile Grenze Durchsetzung, aber ich kann nicht herausfinden, wie dieser Standardwert zu ändern. Ich habe versucht, /etc/security/limits.conf und Neustart sshd, immer noch die gleichen Fehler zu ändern.

War es hilfreich?

Lösung 2

Fiannly heraus die Antwort: fügen Sie die folgende / etc / Init-Skript

ulimit -c unlimited
ulimit -HSn 65535
# Execute the program.
eval exec "$4"

Andere Tipps

Statt die Abhilfe von /etc/initscript mit (und nicht einen Tippfehler in der Datei machen .. :), wenn Sie nur sshd wollen die Einstellungen ehren Sie in /etc/security/limits.conf gemacht, sollten Sie sicherstellen, dass Sie in UsePAM yes /etc/ssh/sshd_config und /etc/pam.d/sshd Listen session required pam_limits.so (oder auf andere Weise enthält eine weitere Datei, die so tut).

Das sollte alles sein, es ist zu ihm.

In älteren Versionen od openssh (<3.6 etwas) gibt es auch ein Problem mit UsePrivilegeSeparation der Grenzen geehrt verhindert werden, aber es wurde in neueren Versionen behoben.

ulimit erfordert Superuser-Rechten ausgeführt werden.

Ich würde Ihnen vorschlagen, den Server-Administrator bitten Sie, diesen Wert zu ändern, auf dem Server, den Sie auf das Skript auszuführen versuchen.

Er / Sie kann das tun, indem Sie auf Linux zu modifizieren /etc/secutiry/limits.conf. Hier ist ein Beispiel, die helfen können:

*               soft    nofile          8192
*               hard    nofile          8192

Danach, Sie müssen nicht sshd neu zu starten. abmelden und melden Sie sich einfach wieder.

Ich würde Ihnen vorschlagen, die gleiche Frage in ServerFault obwohl fragen. Sie werden es besser serverseitige ähnliche Antworten erhalten.

Überprüfen Sie die Start-Skripte (/etc/profile, ~/.??*) für einen Anruf ulimit. IIRC, sobald eine Grenze auferlegt wurde, kann es nicht mehr erweitert werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top