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