Wie kann ich feststellen, warum ein Prozess abbricht?

Wie kann ich feststellen, warum ein Prozess abbricht?

Auf einem CentOS 6.5-Server führe ich mit Sinatra einen sehr einfachen HTTP-Listener aus, der lediglich dazu dient, POST-Anfragen anzunehmen und den Nutzlastinhalt der POST-Anfrage an einen anderen Dienst weiterzuleiten.

Ich stelle oft fest, dass der Prozess mit der PID des Sinatra-Dienstes nicht mehr existiert, ohne dass in den Protokollen eine Erklärung dafür zu finden ist.

Ich verfüge über eine Protokollierung auf Debug-Ebene im Sinatra-Code und habe noch immer keine Ahnung, was auf der Box passiert und den Prozess zum Abbruch bringt.

Was kann ich auf der Linux-Seite dieses Problems tun, um diesen bestimmten Prozess zu überwachen und zu ermitteln, was die Ursache für seine Beendigung ist?

Antwort1

Sie könnten versuchen,

strace -p PID-Nummer >& /tmp/Prozess.txt

Sobald der Prozess beendet ist, können Sie den Inhalt von /tmp/process.txt studieren

Die PID-Nummer sollte durch die numerische PID des Prozesses ersetzt werden, den Sie untersuchen möchten.

verwandte Informationen