1

play2アプリケーションの起動スクリプトを作成しようとしていますが、バックグラウンドタスクとして機能させることができません。私はドキュメントから始めて、以下のスクリプトを思いつきました。

脚本:

#! /bin/sh

# description: Starts autocomplete play app using daemon
# 1. Go to $APPLICATION_PATH and prepare for dev by doing: play clean compile stage
#    This will create a start script at target/start
# 2. Start the application by running this script

. /etc/rc.d/init.d/functions

PLAY_HOME=/opt/play
PLAY=$PLAY_HOME/play
NAME=autocomplete
DESC="autocomplete application"
PID_FILE=/var/run/autocomplete/$NAME.pid    

# Path to the JVM
JAVA_HOME=/usr/java/latest
export JAVA_HOME
export PATH=$PATH:$JAVA_HOME/bin

APPLICATION_PATH=/opt/playapps/autocomplete

DAEMON_OPTS="-Dconfig.file=/opt/playapps/autocomplete/conf/application-dev.conf"

start()
{
    echo -n "Starting $DESC with: --pidfile $PID_FILE ${APPLICATION_PATH}/target/start $DAEMON_OPTS"
    daemon --pidfile $PID_FILE "${APPLICATION_PATH}/target/start $DAEMON_OPTS"
}
stop()
{
  echo -n $"Stopping $DESC:"
  #NOT DONE YET
}


case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
esac

exit $RETVAL

私はこの問題をグーグルで検索し、このような解決策を見つけましたが、 Red Hat Enterprise Linux Serverリリース5.6(Tikanga) distにはないstart-stop-daemonを使用して います。可能であれば、これを機能させるために他のソフトウェアをインストールしたくありません。これをバックグラウンドタスクとして機能させ、コンソールから切り離すために何を見逃しましたか?CTRL + Dは機能せず、CTRL+Cはプロセスを終了します。

4

3 に答える 3

1

OKここにfavorettiからのヒントの後の1つの解決策があります:

#! /bin/sh

# description: Starts autocomplete play app using daemon
# 1. Go to $APPLICATION_PATH and prepare for dev by doing: play clean compile stage
#    This will create a start script at target/start
# 2. Start the application by running this script
# created by: Jakob

. /etc/rc.d/init.d/functions

PLAY_HOME=/opt/play
PLAY=$PLAY_HOME/play
NAME=autocomplete
DESC="autocomplete application"

# Path to the JVM
JAVA_HOME=/usr/java/latest
export JAVA_HOME
export PATH=$PATH:$JAVA_HOME/bin

APPLICATION_PATH=/opt/playapps/autocomplete

DAEMON_OPTS="-Dconfig.file=/opt/playapps/autocomplete/conf/application-dev.conf"

start()
{
        echo -n "Starting $DESC with: $APPLICATION_PATH/target/start $DAEMON_OPTS &"
        $APPLICATION_PATH/target/start $DAEMON_OPTS &
}
stop()
{
        echo -n $"Stopping $DESC:"
        kill `cat $APPLICATION_PATH/RUNNING_PID`
}


case "$1" in
  start)
    start
    ;;
  stop)
        stop
        ;;
esac

exit $RETVAL

コンソールから出るには、CTRL + Dを押す必要がありますが、これは私が考えていたものとはまったく異なります。たぶん、もっと良い解決策を持っている人がいますか?

于 2013-01-02T12:56:54.067 に答える
-1

Play 2.2 の開始/停止スクリプトの私のバージョンは次のとおりです。

http://vladsprogrammingblog.blogspot.com/2014/01/play-startstop-script.html

于 2014-02-18T18:57:16.973 に答える