我正在构建一个简单的暂存CI环境,我通过环境变量APP_PATH定义可运行的Node应用程序的路径。
是否可以通过跟踪APP_PATH变量中的路径告诉进程配置文件中的PM2查找启动脚本?
像这样:
{
"apps": [
{
"name": "my_app",
"script": "$APP_PATH/app.js"
}
]
}
目前,我在启动上述配置时从PM2收到[PM2][ERROR] script not found :
消息。
简而言之: PM2无法解析script
属性中定义的env var。有没有办法克服这个问题?
答案 0 :(得分:1)
如果你需要采用相同的方法。按照这个。
在根目录之外或任何需要的位置创建.json文件。
servers.json
[{
"name":"MyApp",
"script":"/home/user/app/server.js",
"instances":"3" //number of instances to start
},
{
"name":"MySecondApp",
"script":"/home/user/app2/server.js",
"instances":"max" //to calculate your number of CPU cores available and run based on the core count
}]
然后使用pm2 start servers.json
这将启动两个应用程序,其中包含提及的名称和实例。
或者
使用最新版本的PM2,您无需编写任何脚本。只需执行一些命令即可。
步骤1:首先根据需要创建pm2实例,就像现在需要运行的许多实例或需要运行多少个不同的服务器一样。
应用程序启动并按此列出后。
第2步:输入pm2 startup
。然后您将看到pm2自动生成的命令,它可以帮助您将其创建为服务。
步骤3:您将看到需要以灰色阴影运行的命令。复制并以root用户身份运行它。
运行该命令后,您将看到如下结果。
步骤4:运行pm2 save
,以便为启动脚本保存当前的pm2进程列表。
那是......
重新启动服务器并使用pm2 ls
或pm2 status
。
如果您想再次更新pm2进程列表,请使用pm2 update
这将获取当前进程列表并更新启动脚本。
希望这有帮助!!!