- zakładając używasz pakietu „play dist”, można stworzyć prosty skrypt init.d wokół niego. Coś jak:
/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. Oni naprawdę nie mają jeden dystrybucji plików projektów. Najlepsze, co możesz zrobić, to uruchomić "play dist", aby wygenerować pakiet dystrybucyjny. Nawet jeśli byłby rozprowadzany jako pojedynczy plik, prawdopodobnie zostałby wyodrębniony do systemu plików w czasie wykonywania tylko ze względu na wydajność (tak jak obsługiwane są pliki wojny).
FatJar nie są rozszerzane przy starcie. Szukałem opcji zbudowania fatJar. – sheki
Ten skrypt działałby przez większość czasu, ale w nieparzystym czasie, kiedy 'kill' by się nie powiedzie. Wtedy może być w złym stanie. PID, plik zniknął, a aplikacja wciąż działa. – sheki