Что эквивалентно "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