加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows-services – Play 2.0 – 在服务器重启后作为Windows服

发布时间:2020-12-13 22:30:06 所属栏目:Windows 来源:网络整理
导读:我玩了!应用程序作为 Windows服务运行.它是根据 this指南实施的. 问题是当服务器重新启动并且应用程序无法再次启动时,不会删除应用程序根文件夹中的RUNNING_PID.我必须删除此文件并再次手动启动该服务. 有没有解决方案? 解决方法 YAJSW 在YAJSW的情况下,我
我玩了!应用程序作为 Windows服务运行.它是根据 this指南实施的.

问题是当服务器重新启动并且应用程序无法再次启动时,不会删除应用程序根文件夹中的RUNNING_PID.我必须删除此文件并再次手动启动该服务.

有没有解决方案?

解决方法

YAJSW

在YAJSW的情况下,我发现this answer有更好的理解.它当然与你给出的链接非常相??似,但请记住,更经常建议使用dist命令而不是stage,因为它有更好的开发人员注意力(在dist中修复了更多错误).米哈伊尔的答案更清楚了(投票他!)

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会使用它来检查实例是否正常工作).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读