什么相当于Play Framework 2.1的'play stop'?

rip*_*234 16 playframework playframework-2.1

play stopPlay 2.1 相当于什么?

如果我这样做play start,我该如何干净地终止该过程?

teh*_*exx 18

Windows我使用下面的脚本来杀死当前正在运行的游戏服务器

@echo off
if exist RUNNING_PID (
  setlocal EnableDelayedExpansion
  set /p PLAY_PID=<RUNNING_PID
  echo killing pid !PLAY_PID!
  taskkill /F /PID !PLAY_PID!
  del RUNNING_PID
  endlocal
) 
Run Code Online (Sandbox Code Playgroud)


nde*_*rge 12

正如文件中所述:

运行start命令时,Play会分叉新的JVM并运行默认的Netty HTTP服务器.标准输出流被重定向到Play控制台,因此您可以监视其状态.

服务器的进程ID在引导程序中显示并写入RUNNING_PID文件.要杀死正在运行的Play服务器,只需将SIGTERM发送到进程即可正确关闭应用程序.

如果您键入Ctrl + D,Play控制台将退出,但创建的服务器进程将继续在后台运行.然后关闭分叉的JVM的标准输出流,并可以从logs/application.log文件中读取日志记录.

所以我认为你必须使用play run而不是play start.然后你就可以Ctrl+D用来停止比赛了.

  • 令人讨厌的是他们如何从Play 1中改变了这么多简单的语义."play start"曾经意味着完全不同的东西,并且使用完全不同的方式实现了制作. (2认同)
  • 是的,它完全不同; 你将不得不重新学习(几乎)一切:-( (2认同)

Sae*_*fam 10

您可以运行此脚本:

kill $(cat /your-play-project-path/target/universal/stage/RUNNING_PID)
Run Code Online (Sandbox Code Playgroud)


Mik*_*ins 8

如果使用该play start命令运行应用程序,play stop则从app目录发出命令确实有效,并将停止正在运行的应用程序服务器.

我在Play 2.1.1中验证了这一点.