Como posso determinar por que um processo está morrendo?

Como posso determinar por que um processo está morrendo?

Em um servidor CentOS 6.5, estou executando um ouvinte HTTP muito simples com Sinatra que existe simplesmente para aceitar solicitações POST e passar o conteúdo da carga útil da solicitação POST para outro serviço.

Muitas vezes descubro que o processo com o PID do serviço Sinatra não existe mais, sem explicação nos logs.

Tenho registro em nível de depuração no código Sinatra e ainda não tenho pistas sobre o que está acontecendo na caixa para causar a interrupção do processo.

O que posso fazer no lado Linux desse problema para monitorar esse processo específico e determinar o que está causando sua eliminação?

Responder1

Você poderia tentar fazer

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

Depois que o processo terminar, você poderá estudar o conteúdo de /tmp/process.txt

O número pid deve ser substituído pelo pid numérico se for o processo que você deseja estudar.

informação relacionada