web-dev-qa-db-ja.com

Play Framework 2.1の「playstop」に相当するものは何ですか?

Play2.1のplay stopに相当するものは何ですか?

play startを実行した場合、プロセスをクリーンに終了するにはどうすればよいですか?

16
ripper234

述べたように ドキュメント内

Startコマンドを実行すると、Playは新しいJVMをフォークし、デフォルトのNettyHTTPサーバーを実行します。標準出力ストリームはPlayコンソールにリダイレクトされるため、そのステータスを監視できます。

サーバーのプロセスIDはbootstrapに表示され、RUNNING_PIDファイルに書き込まれます。実行中のPlayサーバーを強制終了するには、プロセスにSIGTERMを送信して、アプリケーションを適切にシャットダウンするだけで十分です。

Ctrl + Dを入力すると、Playコンソールは終了しますが、作成されたサーバープロセスはバックグラウンドで実行され続けます。次に、フォークされたJVMの標準出力ストリームが閉じられ、logs /application.logファイルからログを読み取ることができます。

したがって、_play run_の代わりに_play start_を使用する必要があると思います。その後、あなたが使用できるようになります Ctrl+D プレイを停止します。

12
ndeverge

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
) 
18
tehlexx

次のスクリプトを実行できます。

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

play startコマンドを使用してアプリを実行した場合、アプリディレクトリからplay stopコマンドを発行すると機能し、実行中のアプリケーションサーバーが停止します。

Play2.1.1でこれが機能することを確認しました。

8
Mike Hawkins

押すだけ Ctrl + D コンソールウィンドウで。

0
disperse

<your_server_url>/@killを呼び出すことができます。例: :http://localhost:9022/app3/@kill

0
Benj

これを実現するには、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システムにのみ適用されます。

0
John Kentucky