7

Play 2.0アプリをEC2にデプロイしていて、でアプリを起動するとplay start、バックグラウンドで実行されます。ヒットするCtrl-Dと、プロセスはバックグラウンドで実行され続けますが、しばらくすると(15分または20分?)終了します。理由はわかりません。私は通常、アプリを起動した後にsshセッションを終了しますが、それが理由ではないことを願っています。

4

4 に答える 4

10

nohup play start私のために働きます。

于 2012-05-24T08:17:19.037 に答える
3

Playアプリに次のスタートアップスクリプト(CentOS上)を使用していますが、正常に動作しているようです。バックグラウンドと独自のプロセスグループおよびセッションに配置されるため、ハングアップなどの影響を受けません。ヒントはギヨームplay stageからのものです。退屈して「それを行う適切な方法」です。target/start

#!/bin/bash
#
# chkconfig: 2345 98 1
# description: MyApp application
#

case "$1" in
start)
  su - apps <<'EOF'
cd /opt/myapp || exit 1
PATH=/opt/play-2.1.1:$PATH
echo "Starting MyApp..."
play stage 
setsid target/start < /dev/null > /dev/null 2>&1 & 
EOF
  ;;
stop)
  su - apps <<'EOF'
cd /opt/myapp || exit 1
PATH=/opt/play-2.1.1:$PATH
echo "Stopping MyApp..."
play stop
EOF
  ;;
esac

次の方法で分離されていることを確認できます。

ps -e -o user,pid,ppid,pgrp,sid,command | grep -i play

次のようなものが表示されます。

apps      2949     1  2949  2949 java -cp target/staged/* play.core.server.NettyServer target/..

意味init(pid 1)はその親であり、独自のプロセスグループ(2949)に分離されています。

于 2013-04-26T17:04:46.947 に答える
1

アクティベーター(以前のplay)スクリプトが実行するstageコマンドを使用して、プロジェクトデプロイメントバイナリを準備することをお勧めします。そのバイナリはバックグラウンドで実行できます。これは、以下のコードの2番目のコマンドが示すパスにあります。

./activator stage
target/universal/stage/bin/project-name &
于 2014-09-15T16:46:34.940 に答える
0

プレイ2.2.3の場合...プレイ「start-Dhttp.port=8080」が機能しました!

于 2015-06-03T03:16:55.823 に答える