如何诊断单声道服务意外终止?

如何诊断单声道服务意外终止?

我编写了一个 .net 4.0 mono 服务并将其托管在 Raspberry Pi 上。

它在系统启动时通过 .sh 文件运行,该文件包含以下代码:

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

一段时间后,有时是几小时,有时是几天后,该进程将终止并保留 snserver.lock 文件。我通过 StreamWriter 编写的自定义日志记录代码似乎没有刷新最后几条消息,并且当我检查它时,我的自定义日志文件似乎不完整。

我可以采取哪些步骤来诊断此问题并防止服务终止?即有我可以查看的单声道日志文件吗?我对 Linux 还是有点陌生​​,所以我很感激任何指点。

答案1

您可以针对应用程序的 PID 运行 strace 并输出日志strace(如果要花费数小时或数天,请准备好占用大量磁盘)。

其他策略可以使用 GDB 调试器,或mono使用--debug选项启动:

http://www.mono-project.com/docs/debug+profile/debug/

相关内容