¿Cómo puedo determinar por qué un proceso está muriendo?

¿Cómo puedo determinar por qué un proceso está muriendo?

En un servidor CentOS 6.5 estoy ejecutando un escucha HTTP muy simple con Sinatra que existe simplemente para aceptar solicitudes POST y pasar el contenido de la carga útil de la solicitud POST a otro servicio.

Muchas veces encuentro que el proceso con el PID del servicio Sinatra ya no existe, sin explicación en los logs.

He iniciado sesión a nivel de depuración en el código Sinatra y todavía no tengo pistas sobre lo que está sucediendo en la caja para provocar que el proceso muera.

¿Qué puedo hacer en el lado de Linux de este problema para monitorear este proceso en particular y determinar qué está causando que se detenga?

Respuesta1

Podrías intentar hacer

strace -p número-pid >& /tmp/process.txt

Una vez que el proceso haya muerto, puedes estudiar el contenido de /tmp/process.txt

El número pid debe reemplazarse con el pid numérico si el proceso que desea estudiar.

información relacionada