Wenn der Kernel einen Prozess beendet hat (weil auf dem System nicht genügend Speicher vorhanden ist), wird eine Kernel-Protokollmeldung angezeigt. Einchecken /var/log/kern.log
(unter Debian / Ubuntu können andere Distributionen Kernel-Protokolle an eine andere Datei senden, normalerweise jedoch /var/log
unter Linux).
Wenn der OOM-Killer (Out-of-Memory-Killer) ausgelöst wird, bedeutet dies, dass Sie nicht über genügend virtuellen Speicher verfügen. Fügen Sie mehr Swap (oder vielleicht mehr RAM) hinzu.
Einige Prozessabstürze werden auch in Kernel-Protokollen aufgezeichnet (z. B. Segmentierungsfehler).
Wenn die Prozesse von cron gestartet wurden, sollten Sie eine Mail mit Fehlermeldungen haben. Wenn die Prozesse von einer Shell in einem Terminal gestartet wurden, überprüfen Sie die Fehler in diesem Terminal. Führen Sie den Vorgang aus screen
, um das Terminal am Morgen erneut anzuzeigen. Dies hilft möglicherweise nicht, wenn der OOM-Killer ausgelöst wurde, da er möglicherweise auch den Cron- oder Screen-Prozess beendet hat. Aber wenn Sie auf den OOM-Killer gestoßen sind, ist dies das Problem, das Sie beheben müssen.
/var/log/kern.log
?Process Accounting könnte hier Abhilfe schaffen.
In Kürze:
Dann probiere Befehle wie:
oder auf Ubuntu:
Sehen:
AKTUALISIEREN
Seltsamerweise enthält die
pacct
Datei Informationen zum Beendigungsstatus, scheint diese jedochlastcomm
nichtsa
zu drucken.Soweit ich sehen kann, müssten Sie Ihr eigenes C-Programm schreiben, um auf die Informationen zuzugreifen.
UPDATE 2
Hier ist eine Version, die den Exit-Code ausgibt.
Die letzten beiden Felder sind "S" für signalisiert und "E" für verlassen, gefolgt von der Signalnummer oder dem Ausgangsstatus.
In Ihrem Fall suchen Sie wahrscheinlich nach "S 15", was bedeutet, dass es ein SIGTERM hat.
Im Vergleich zu "E 0" bedeutet dies, dass der Prozess ohne Fehler beendet wurde.
Nur minimal getestet.
quelle
Dieser Befehl teilt Ihnen mit, welche Dienste gerade ausgeführt werden und welche nicht gestartet oder gestoppt wurden.
quelle