gpt4 book ai didi

windows-services - Play 2.0-服务器重新启动后作为Windows服务启动

转载 作者:行者123 更新时间:2023-12-04 08:33:15 25 4
gpt4 key购买 nike

我玩了!作为Windows服务运行的应用程序。它是根据this指南实现的。

问题在于,重新启动服务器后,应用程序根文件夹中的RUNNING_PID不会被删除,并且应用程序无法再次启动。我必须删除此文件,然后手动再次启动该服务。

有解决方案吗?

最佳答案

YAJSW
YAJSW的情况下,我对this answer有了更好的了解。当然,它与您提供的链接非常相​​似,但请记住,由于它已吸引了更多开发人员注意,因此更建议您使用dist命令而不是stage(更多的错误已在dist中修复)。 Mikhail的答案更清楚了(投票给他!)
RUNNING_PID
RUNNING_PID的情况下,有一些拉取请求建议添加一个禁用pidfile的选项...无论如何,正如我所看到的,它们仍然没有被接受...
实际上,如果您无法避免创建它,则可以...在应用程序启动后立即将其删除,最好使用Globals object's 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();
}
}
(注意:在apllication.conf中更改 pidfile.path不会解决问题,因为play会使用它来检查实例是否正常工作)。

关于windows-services - Play 2.0-服务器重新启动后作为Windows服务启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15088751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com