如何使用 pm2 配置文件启动带有参数的 java 应用程序?
How can I start a java application with parameters using a pm2 config file?
我正在尝试使用 pm2
启动 graphhopper... graphhopper
是一个 java 应用程序,我在终端上启动它的方式是到它的文件夹并输入以下命令:
java -jar matching-web/target/graphhopper-map-matching-web-1.0-SNAPSHOT.jar server config.yml
此应用程序在命令行中运行良好 运行,但我没有成功 运行 它作为 pm2
的服务。我使用的配置文件是这个 (pm2 start config.json
):
{
"apps":[
{
"name":"graphhopper",
"cwd":".",
"script":"/usr/bin/java",
"args":[
"-jar",
"/home/myyser/graphhopper/map-matching/matching-web/target/graphhopper-map-matching-web-1.0-SNAPSHOT.jar",
"server",
"config.yml"
],
"log_date_format":"YYYY-MM-DD HH:mm Z",
"exec_interpreter":"",
"exec_mode":"fork"
}
]
}
我 100% 确定我在这里出错的是我编写 "server", "config.yml"
参数的方式...查看 pm2 logs graphhopper
我可以看到这些参数是根本没有被认出......我也试图调整它的完成方式,但我没有设法找到正确的解决方案。我知道如何使用不带参数的 pm2
启动 java 应用程序。但是,我如何使用具有参数的 java 应用程序来完成此操作,如 graphhopper
?
如评论中所述,可以通过创建 bash 脚本并使用 pm2
而不是 运行 直接 [=19] 运行 来解决此问题=] application... 使用的 bash 脚本是文件 graphhopper.sh
如下:
#!/bin/bash
java -jar matching-web/target/graphhopper-map-matching-web-1.0-SNAPSHOT.jar server config.yml
并将其作为服务启动 pm2
:
pm2 start graphhopper.sh --name=graphhopper
你也可以直接在 pm2 中 运行 一个 fat jar - 使用两个破折号分隔命令参数:
pm2 start java -- -jar matching-web/target/graphhopper-map-matching-web-1.0-SNAPSHOT.jar server config.yml
我正在尝试使用 pm2
启动 graphhopper... graphhopper
是一个 java 应用程序,我在终端上启动它的方式是到它的文件夹并输入以下命令:
java -jar matching-web/target/graphhopper-map-matching-web-1.0-SNAPSHOT.jar server config.yml
此应用程序在命令行中运行良好 运行,但我没有成功 运行 它作为 pm2
的服务。我使用的配置文件是这个 (pm2 start config.json
):
{
"apps":[
{
"name":"graphhopper",
"cwd":".",
"script":"/usr/bin/java",
"args":[
"-jar",
"/home/myyser/graphhopper/map-matching/matching-web/target/graphhopper-map-matching-web-1.0-SNAPSHOT.jar",
"server",
"config.yml"
],
"log_date_format":"YYYY-MM-DD HH:mm Z",
"exec_interpreter":"",
"exec_mode":"fork"
}
]
}
我 100% 确定我在这里出错的是我编写 "server", "config.yml"
参数的方式...查看 pm2 logs graphhopper
我可以看到这些参数是根本没有被认出......我也试图调整它的完成方式,但我没有设法找到正确的解决方案。我知道如何使用不带参数的 pm2
启动 java 应用程序。但是,我如何使用具有参数的 java 应用程序来完成此操作,如 graphhopper
?
如评论中所述,可以通过创建 bash 脚本并使用 pm2
而不是 运行 直接 [=19] 运行 来解决此问题=] application... 使用的 bash 脚本是文件 graphhopper.sh
如下:
#!/bin/bash
java -jar matching-web/target/graphhopper-map-matching-web-1.0-SNAPSHOT.jar server config.yml
并将其作为服务启动 pm2
:
pm2 start graphhopper.sh --name=graphhopper
你也可以直接在 pm2 中 运行 一个 fat jar - 使用两个破折号分隔命令参数:
pm2 start java -- -jar matching-web/target/graphhopper-map-matching-web-1.0-SNAPSHOT.jar server config.yml