Play 2.0 - starting as Windows service after server restart
playframework-2.0, windows-services
Solution
YAJSW
In case of `YAJSW` I found this answer with better understanding. It's of course pretty similar to link you gave, anyway keep in mind that it's more often advised to use `dist` command instead of `stage` as it has got better developers attention (more bugs fixed in `dist`). And Mikhail's answer is just clearer (vote him up!)
RUNNING_PID
In case of `RUNNING_PID`, there was some pull requests which suggested to add an option of disabling pidfile... anyway as I can see, none of them was accepted still...
Actually if you can't avoid creating it, you can... remove it right after application's start, preferably with Globals object's `onStart()` method. To stay informed what is current PID of the working instance, just rename the file to something, which won't be checked by Play at the startup - for an example `RUNNING_PID_INFO`. In such case after server's restart service will run your application without problems.
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();
}
}
(note: changing `pidfile.path` in apllication.conf will NOT solve the problem, as play will use that for checking if instance is working).
Problem
I have the Play! application running as a windows service. It is implemented according to this guidance. The problem is that the `RUNNING_PID` at the root folder of the application is not removed when the server is restarted and the application cannot start again. I have to remove this file and start the service again manually. Is there any option to solve it?