Hoshinonyaruko/palworld-go

在主机管理点关闭服务器之后,还是会自动重启服务器

kongxiangyiren opened this issue · 5 comments

在主机管理点关闭服务器之后,还是会自动重启服务器

#69 Duplicated

同样的问题,release29前不会有游戏服务端与webui同启的问题,也不会自动重启游戏服务端。
release33的webui启动时会同时启动游戏服务端,但是手动关闭后不会再重启游戏服务端。
之后的版本我只测试了release67,不仅游戏服务端与webui同启,而且手动关闭游戏服务端后还会马上再被重启。
issue69已经看过了,全部设置为0都没用。

猜测是守护进程重启的服务端,但是在webui中该项(进程存活检测时间)无法设置为0,修改json文件为0则会一直检测并自动重启服务端。暂时没找到解决方法,可以将该项值设置为较大一些,目前我设置为864000(10天),这个值太大也会失效并一直重启服务端。

查看main.go和supervisor.go的源码发现,supervisor并未对服务器停止工作的原因进行区分,主动关闭和由于内存释放导致的僵尸进程都会被重启。将周期设置为0则会一直检测则是因为supervisor.start()中的ticker := time.NewTicker(time.Duration(s.Config.CheckInterval) * time.Second),并未对interval设置为0的情况进行检测并关闭supervisor。加一个对CheckInterval的判断即可,如果为0则不启用supervisor(私人服务器不玩的时候想关掉服务器)。由于不懂go语言,不知道这样修改是否优雅。