如何在Debian上部署Play 2.0应用程序?

she*_*eki 9 java debian scala playframework-2.0 playframework-2.2

我有玩应用程序,以便在Debian上轻松部署,有什么方法

  1. 使用标准的init.d脚本从代码中创建一个守护进程,这里的主要问题是如何优雅地停止应用程序?

  2. 如何将代码编译为胖jar,与多个文件和目录(部署Play应用程序的标准方式)相比,易于维护1个单独的文件.

Kyr*_*rra 9

  1. 假设您正在使用"play 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
Run Code Online (Sandbox Code Playgroud)

他们实际上并没有单一的项目文件分发.你能做的最好的就是运行"play dist"来生成一个可分发的包.即使它是作为单个文件分发的,它也可能在运行时被提取到文件系统只是为了提高效率(只是如何处理war文件).