16

play stopPlay 2.1に相当するものは何ですか?

もしそうならplay start、どうすればプロセスをきれいに終了できますか?

4

7 に答える 7

18

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
) 
于 2014-02-28T07:36:40.900 に答える
12

ドキュメントに記載されているように:

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

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

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

play runですから、の代わりに使用する必要があると思いますplay startCtrl+Dその後、プレイを停止するために使用できるようになります。

于 2013-02-25T20:45:44.133 に答える
10

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

kill $(cat /your-play-project-path/target/universal/stage/RUNNING_PID)
于 2015-01-18T07:15:39.040 に答える
8

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

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

于 2013-06-25T01:00:23.057 に答える
0

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

于 2013-02-25T20:27:13.637 に答える
0

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

于 2014-12-11T07:33:44.620 に答える
0

あなたは呼び出すことができます<your_server_url>/@kill、例えば:http://localhost:9022/app3/@kill

于 2017-03-13T08:27:55.883 に答える