我正在使用golang开发一个web服务。它使用net / http包和其他软件包,如github.com/go-sql-driver/mysql和redigo(redis)。 我开发它没有问题,没有错误。 当我把它作为服务在生产中作为后台服务(即:用./myProgram&发布)。 问题是,经过几次,这是不一样的:它可能是几分钟或几个小时,它只是崩溃。该服务不再出现在netstat中:它已关闭。 我看内存/ CPU消耗/打开tcp连接,没有什么是正常的。 我还在文件中记录有关我的服务的错误和请求的信息,但没有任何异常,它只是崩溃。
如果您有任何想法,请告诉我。或者我可以跟踪错误的任何想法。
答案 0 :(得分:2)
您提到这只在生产服务器上运行时才会发生。
当您断开登录会话时,是否会导致该进程被终止?如果是这样,您要么使用正确的启动脚本,要么至少以 nohup
启动它nohup ./myProgram &
有关详细信息,请参阅this answer at serverfault。