Jol*_*ene 6 windows-services playframework-2.0
我玩了!应用程序作为Windows服务运行.它是根据本指南实施的.
问题是,RUNNING_PID当重新启动服务器并且应用程序无法再次启动时,不会删除应用程序的根文件夹.我必须删除此文件并再次手动启动该服务.
有没有解决方案?
如果YAJSW我发现这个答案有更好的理解.它当然与你给出的链接非常相似,但请记住,更经常建议使用dist命令而不是stage因为它有更好的开发人员注意力(更多的错误修复dist).米哈伊尔的答案更清楚了(投票他!)
在这种情况下RUNNING_PID,有一些拉动请求,建议添加一个禁用pidfile的选项...无论如何,我可以看到,他们都没有被接受...
实际上,如果你不能避免创建它,你可以......在应用程序启动后立即将其删除,最好使用Globals对象的 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();
}
}
Run Code Online (Sandbox Code Playgroud)
(注意:pidfile.path在apllication.conf中更改不会解决问题,因为play会使用它来检查实例是否正常工作).
从Play Framework 2.1开始,您可以通过设置pidfile.path属性来禁用PID文件:
视窗:
-Dpidfile.path=NUL
Run Code Online (Sandbox Code Playgroud)
Unix的:
-Dpidfile.path=/dev/null
Run Code Online (Sandbox Code Playgroud)
在https://groups.google.com/forum/#!topic/play-framework/4amD9o37Ki4上找到
| 归档时间: |
|
| 查看次数: |
1848 次 |
| 最近记录: |