在命令行中,输入play run
后,我已经阅读了几种关于停止播放服务器的方法:
SIGTERM
to the process,基于RUNNING_PID
(正在制作中)。taskkill
。问题是#1要求你在同一个控制台上,#2要求你知道进程ID(不能写入开发环境中的文件),#3可以停止只是服务器。
有没有办法从其他控制台(在Windows 7或Windows 8上)杀死非生产/开发环境中的Play服务器?理想情况下,像 Ctrl + D ,但来自不同的控制台?
答案 0 :(得分:0)
不...你无法从其他控制台中杀死应用,但你可以维护自己的pid文件,即使用Global object:
import org.apache.commons.io.FileUtils;
import play.Application;
import play.GlobalSettings;
import play.Play;
import java.io.File;
import java.io.IOException;
import java.lang.management.ManagementFactory;
public class Global extends GlobalSettings {
@Override
public void beforeStart(Application app) {
if (!Play.isProd()) {
try {
FileUtils.writeStringToFile(new File("DEVELOPMENT_PID"), ManagementFactory.getRuntimeMXBean().getName().split("@")[0]);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
注意,这将在第一次请求后保存/更新...我没有在Windows上测试
启动/停止开发应用程序的其他更舒适的方法是使用:Intellij Idea with Play支持,当Run Configuration
正确完成后,您只需使用IDE中的按钮/快捷方式即可。
最后,您可以尝试按名称在TaskManager中搜索进程,然后在那里停止