Что эквивалентно "play stop" для Play Framework 2.1?
Что эквивалентно play stop
для Play 2.1?
Если я сделал play start
, как я могу чисто завершить процесс?
Ответы
Ответ 1
Как указано в документе:
Когда вы запустите команду "Пуск", Play разметит новую JVM и запустит HTTP-сервер Netty по умолчанию. Стандартный выходной поток перенаправляется на Play Play, поэтому вы можете контролировать его статус.
Идентификатор процесса сервера отображается в бутстрапе и записывается в файл RUNNING_PID. Чтобы убить запущенный сервер воспроизведения, достаточно отправить SIGTERM в процесс, чтобы правильно закрыть приложение.
Если вы наберете Ctrl + D, консоль Play завершит работу, но созданный процесс сервера продолжит работать в фоновом режиме. Стандартный выходной поток разветвленных JVM затем закрывается, и регистрация может быть считана из файла logs/application.log.
Поэтому я думаю, что вам нужно использовать play run
вместо play start
. Затем вы можете использовать Ctrl+D, чтобы остановить воспроизведение.
Ответ 2
В Windows
Я использую следующий script, чтобы убить текущий сервер воспроизведения
@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
)
Ответ 3
Вы можете запустить этот script:
kill $(cat /your-play-project-path/target/universal/stage/RUNNING_PID)
Ответ 4
Если вы запустили приложение с помощью команды play start
, выдача команды play stop
из каталога приложений будет работать и остановит работу сервера приложений.
Я подтвердил, что это работает в Play 2.1.1.
Ответ 5
Просто нажмите Ctrl + D в окне консоли.
Ответ 6
Для этого вы можете изменить файл build.sbt как описано здесь.
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")
}
Однако это относится только к системам * nix.
Ответ 7
Вы можете позвонить <your_server_url>/@kill
, например.: http://localhost:9022/app3/@kill