Wenn der von root reservierte Speicherplatz (normalerweise 5%) nicht mitgezählt wird, und /tmp wirklich 100% voll ist, also 0 Bytes frei sind,warum konnten wir uns nicht per SSH bei der Maschine anmelden? Wir bekamen lediglich die Fehlermeldung "kann nicht forken".
Gibt es Parameter für den SSH-Client, sodass wir uns auch dann noch bei einem Computer anmelden können, wenn /tmp zu 100 % voll ist?
UPDATE: Neustart ist keine wirkliche Option:\
Antwort1
Ich glaube nicht, dass die volle Anzahl /tmp
das Problem ist. Der fork()
Systemaufruf schlägt nur dann mit diesem bestimmten Fehler fehl, wenn zu viele Prozesse ausgeführt werden.
Haben Sie ein Ulimit festgelegt?
Wenn Sie nicht auf die Konsole zugreifen können, können Sie nur sehr wenig tun ...
Antwort2
Ich habe Fälle gesehen, in denen /tmp durch SWAP-Speicherplatz unterstützt wird. Wenn Sie also swappen UND viel /tmp-Aktivität haben, ist es sehr gut möglich, dass diese Meldung angezeigt wird, wenn der SWAP-Speicherplatz knapp wird.
Wenn Sie nicht genügend Arbeitsspeicher haben, bleibt Ihnen möglicherweise kaum eine andere Wahl als ein Neustart. Der Arbeitsspeicherkiller funktioniert möglicherweise, beendet jedoch wahllos Prozesse, von denen einige wichtig sein könnten.
Eine andere Möglichkeit ist, dass ein (oder mehrere) Prozesse die Prozesstabelle aufgefüllt haben. Wenn keine weiteren Slots verfügbar sind, können Sie diese Meldung ebenfalls erhalten. Ihre Lösung wäre hier eine Such- und Zerstörungsoperation für die Prozesse, die den Zustand verursachen ... vorausgesetzt, Sie können sich anmelden. Wenn Sie sich nicht anmelden können, ist ein Neustart Ihre einzige Alternative.
Schließlich kann natürlich auch ein schwerwiegendes Problem mit der Software oder Hardware des Computers vorliegen, das die von Ihnen beschriebene Situation verursacht.
Antwort3
Auf vielen Systemen /tmp
handelt es sich um ein virtuelles Dateisystem, das im RAM gespeichert ist. Je nach Konfiguration kann das Auffüllen des Systems den gesamten RAM aufbrauchen und Ihnen bleibt nicht genügend Speicher, um einen neuen Prozess zu initialisieren.
Wie Sie sich vorstellen können, lässt sich das im ssh
Nachhinein nicht mehr beheben. Sie können es jedoch in Zukunft verhindern, indem Sie es /tmp
so einstellen, dass es nicht so groß werden kann.
Antwort4
Versuchen Sie als Workaround, nach einem Neustart SSH zu verwenden. Einmal hatte ich ein ähnliches Problem, das nach einem Systemneustart automatisch behoben wurde!