- あなたは「DISTを再生」のパッケージを使用していると仮定すると、あなたはそれの周りのシンプルなのinit.dスクリプトを作成することができます。ような何か:
/etc/init.d/play.myplayapp
#! /bin/sh
### BEGIN INIT INFO
# Provides: play
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description:
# Description:
### END INIT INFO
APP="myplayapp"
APP_PATH="/opt/play/$APP"
start() {
$APP_PATH/start &
}
stop() {
kill `cat $APP_PATH/RUNNING_PID`
}
case "$1" in
start)
echo "Starting $APP"
start
echo "$APP started."
;;
stop)
echo "Stopping $APP"
stop
echo "$APP stopped."
;;
restart)
echo "Restarting $APP."
stop
sleep 2
start
echo "$APP restarted."
;;
*)
N=/etc/init.d/play.$APP
echo "Usage: $N {start|stop|restart}" >&2
exit 1
;;
esac
exit 0
2.彼らは本当にプロジェクトの単一ファイルの配布を持っていません。あなたができることは、配布可能パッケージを生成するために "play dist"を実行することです。たとえそれが単一のファイルとして配布されたとしても、効率のために単に実行時にファイルシステムに展開されることになります(単にwarファイルの処理方法)。
FatJar年代は実行時に展開されていません。私はfatJarを構築するオプションを探していました。 – sheki
このスクリプトは、ほとんどの場合動作しますが、 'kill 'が失敗する奇妙な時間に動作します。その後、悪い状態になる可能性があります。 PID、ファイルがなくなり、アプリケーションがまだ実行中です。 – sheki