playframework playframework-2.1

playframework - ¿Qué es el equivalente a ''play stop'' para Play Framework 2.1?



playframework-2.1 (7)

Si ejecutó su aplicación usando el comando play start , emitir el comando play stop desde el directorio de la aplicación funciona y detendrá el servidor de la aplicación en ejecución.

Verifiqué que esto funciona en Play 2.1.1.

¿Cuál es el equivalente a play stop para Play 2.1?

Si play start , ¿cómo finalizo el proceso de forma limpia?


Como se indica en el documento :

Cuando ejecuta el comando de inicio, Play crea una nueva JVM y ejecuta el servidor Netty HTTP predeterminado. La secuencia de salida estándar se redirige a la consola Play para que pueda controlar su estado.

La identificación del proceso del servidor se muestra en el arranque y se escribe en el archivo RUNNING_PID. Para matar un servidor Play en ejecución, es suficiente enviar un SIGTERM al proceso para cerrar la aplicación correctamente.

Si escribe Ctrl + D, la consola Play se cerrará, pero el proceso del servidor creado continuará ejecutándose en segundo plano. La secuencia de salida estándar de la JVM se cierra y el registro se puede leer desde el archivo logs / application.log.

Así que creo que debes usar play run lugar de play start . Entonces podrás usar Ctrl + D para detener el juego.


Simplemente presione Ctrl + D en la ventana de la consola.


En Windows estoy usando la siguiente secuencia de comandos para matar el servidor de juego en ejecución actualmente

@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 )


Para lograr esto, puede modificar el archivo build.sbt como se describe aquí .

TaskKey[Unit]("stop") := { val pidFile = target.value / "universal" / "stage" / "RUNNING_PID" if (!pidFile.exists) throw new Exception("App not started!") val pid = IO.read(pidFile) s"kill $pid".! println(s"Stopped application with process ID $pid") }

Sin embargo, esto solo se aplica a los sistemas * nix.


Puede ejecutar este script:

kill $(cat /your-play-project-path/target/universal/stage/RUNNING_PID)


Puede llamar a <your_server_url>/@kill , por ejemplo: http://localhost:9022/app3/@kill