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.