我编写了一个 .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
选项启动: