我有游戏!作为 Windows 服务运行的应用程序。它是根据this http://naoki.sato.name/lab/archives/263指导。
问题是RUNNING_PID
当服务器重新启动时,应用程序根文件夹中的内容不会被删除,并且应用程序无法再次启动。我必须删除该文件并再次手动启动该服务。
有什么选择可以解决它吗?
YAJSW
的情况下YAJSW
我发现这个答案 https://stackoverflow.com/a/13565582/1066240有了更好的理解。它当然与您提供的链接非常相似,无论如何请记住,更经常建议使用dist
命令而不是stage
因为它得到了更好的开发人员关注(修复了更多错误)dist
)。米哈伊尔的答案更加清晰(投票给他!)
RUNNING_PID
的情况下RUNNING_PID
,有一些拉取请求建议添加禁用 pidfile 的选项...无论如何,正如我所见,仍然没有一个被接受...
实际上,如果您无法避免创建它,您可以...在应用程序启动后立即删除它,最好使用全局对象的 http://www.playframework.com/documentation/2.0.4/JavaGlobal onStart()
方法。要了解工作实例的当前 PID 是什么,只需将文件重命名为 Play 在启动时不会检查的名称 - 例如RUNNING_PID_INFO
。在这种情况下,服务器重新启动后,服务将毫无问题地运行您的应用程序。
import play.GlobalSettings;
import java.io.File;
public class Global extends GlobalSettings {
@Override
public void onStart(Application application) {
File pidFile = new File("RUNNING_PID");
pidFile.renameTo(new File("RUNNING_PID_INFO"));
}
@Override
public void onStop(Application application) {
File pidFile = new File("RUNNING_PID_INFO");
pidFile.delete();
}
}
(注:改变pidfile.path
在 application.conf 中不会解决问题,因为 play 将使用它来检查实例是否正常工作).
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)