Deployment 使用pm2运行play scala应用程序

Deployment 使用pm2运行play scala应用程序,deployment,jar,playframework,pm2,Deployment,Jar,Playframework,Pm2,我们一直在UNIX服务器上部署应用程序,只需运行可执行文件,比如 java_opts="-Xms128M -Xmx512M" ./bin/myProject -Dconfig.file=/path/to/my/confFile.conf -Dhttp.port=9022 & 而且效果很好。但是,对于我使用的NodeJS应用程序,我非常欣赏它的易用性和监控选项,因此我也希望将它用于其他应用程序 声称可以运行JAR。关于如何调整conf(见下文)以使其与我的Play/scala应用程序配合

我们一直在UNIX服务器上部署应用程序,只需运行可执行文件,比如

java_opts="-Xms128M -Xmx512M" ./bin/myProject -Dconfig.file=/path/to/my/confFile.conf -Dhttp.port=9022 &
而且效果很好。但是,对于我使用的NodeJS应用程序,我非常欣赏它的易用性和监控选项,因此我也希望将它用于其他应用程序

声称可以运行JAR。关于如何调整conf(见下文)以使其与我的Play/scala应用程序配合使用,以及如果可能的话,有什么想法吗

使用pm2运行Jar:

{
"apps": [{
        "name": "JavaAgent",
        "cwd": "/usr/bin",
        "args": [
            "-Xmx256m",
            "-cp",
            "/app/somedirectorywhereagentresides:/some/directory/where/your/classes/lives",
            "your.main.class"
        ],
        "env": {
            "ANY_ENV_VARIABLE": "that you might need in your program"
        },
        "script": "java",
        "node_args": [],
        "log_date_format": "YYYY-MM-DD HH:mm Z",
        "exec_interpreter": "none",
        "exec_mode": "fork"
    }
]
}

尝试将命令行args放在
的“args”下

将您的
conf
lib
目录放在类路径上。

Play的引导类是Play.core.server.NettyServer

这里是我的项目中的一个工作示例。首先,您需要使用命令“activator dist”准备项目。它生成独立版本并将其压缩到.ZIP文件

  • 在项目目录中运行“activator dist”
  • 如果命令完成成功-查看将位于的路径 .zip文件与您的项目一起使用
  • 将文件从.zip解压缩到目录中(例如/var/www/yourproject)
  • 创建yourapp.json文件并将以下代码放入该文件:
  • 使用命令“pm2 start/path/to/json/file/yourapp.json”运行项目
  • 就这些

    {
        "apps": [{
                "name": "NameInPM2List",
                "cwd": "/path/to/your/project",
                "args": [
                    "-Duser.dir=/path/to/your/project",
                    "-Dhttp.address=127.0.0.1",
                    "-Dhttp.port=9000",
                    "-cp",
                    "/path/to/your/project/lib/*",
                    "play.core.server.ProdServerStart"
                ],
                "script": "/usr/bin/java",
                "node_args": [],
                "log_date_format": "YYYY-MM-DD HH:mm Z",
                "exec_interpreter": "none",
                "exec_mode": "fork"
            }
        ]
    }