Como posso diagnosticar um serviço mono terminando inesperadamente?

0

Eu escrevi um serviço mono .net 4.0 e estou hospedando-o em um Raspberry Pi.

Ele é executado na inicialização do sistema por meio de um arquivo .sh que possui o seguinte código:

cd /var/supernovaServer
mono-service -l:/var/supernovaServer/snserver.lock /var/supernovaServer/snserver.exe

Após algum tempo, às vezes horas e às vezes dias, o processo termina e deixa o arquivo snserver.lock no lugar. O código de log personalizado que escrevi por meio de um StreamWriter parece não ter liberado as últimas mensagens e meu arquivo de log personalizado parece incompleto quando o examino.

Quais etapas posso seguir para diagnosticar esse problema e impedir que o serviço seja encerrado? Ou seja, existem arquivos de log para mono que eu poderia olhar? Eu ainda sou um pouco novo no Linux, então eu apreciaria qualquer ponteiro.

    
por Nicholas Hill 08.01.2016 / 11:50

1 resposta

0

Você pode executar strace contra o PID do seu aplicativo e registrar strace output (esteja preparado para receber uma boa quantidade de disco, se precisar levar horas ou dias).

Outra estratégia poderia ser usar o depurador do GDB ou lançar mono com --debug option:

link

    
por 12.01.2016 / 10:07