我正在使用 golang 开发一个网络服务。它使用 net/http 包和其他包,例如 github.com/go-sql-driver/mysql 和 redigo (redis)。 我开发的时候没有任何问题,没有bug。 当我将它作为后台服务放在生产服务器上时(即:使用 ./myProgram & 启动)。 问题是,几次之后,情况就不再一样了:可能是几分钟或几个小时,它就会崩溃。该服务不再出现在 netstat 中:它已关闭。 我查看了内存/CPU消耗/打开的tcp连接,没有任何异常。 我还将有关服务的错误和请求的信息记录在文件中,但没有任何异常,它只是崩溃了。
如果你有什么想法,请告诉我。或者关于我可以跟踪错误的方式的任何想法。
最佳答案
您提到这只在生产服务器上运行时才会发生。
当您断开登录 session 时,进程是否会被终止?如果是这样,您想要使用正确的启动脚本,或者至少使用 nohup
启动它nohup ./myProgram &
参见this answer at serverfault了解更多详情。
关于golang webservice意外崩溃,没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31274300/