0

我正在构建一个简单的分段CI环境,我通过环境变量APP_PATH定义可运行节点应用程序的路径。使用环境变量定义PM2脚本路径

是否可以告诉PM2在进程配置文件中通过跟踪APP_PATH变量中的路径来查找启动脚本?

像这样:

{ 
    "apps": [ 
    { 
     "name": "my_app", 
     "script": "$APP_PATH/app.js" 
    } 
    ] 
} 

目前,我开始上面的配置时,得到一个PM2消息[PM2][ERROR] script not found :

简而言之: PM2不能解析script属性中定义的env var。有什么办法可以解决这个问题吗?

+0

你想让PM2在重新启动时自动启动你的应用程序? –

+0

@Prasanthchinja是的,这是计划 – m3dw3

回答

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实例,例如现在需要运行多个实例或需要运行多少个不同的服务器。

矿低于 enter image description here

一旦你的应用程序被启动,这样上市。

第2步:输入pm2 startup。然后你会看到一个由pm2自动生成的命令,它可以帮助你创建它作为服务。

enter image description here

第3步:您将看到您需要的灰色阴影运行的命令。复制并以root用户身份运行。

一旦你运行了这个命令,你将会看到下面的结果。

enter image description here

第4步:运行pm2 save所以进程目前PM2名单将节省启动脚本。

就是这样..

通过重新启动您的服务器,并检查使用​​或pm2 status测试它。

如果您想要再次更新pm2进程列表,使用pm2 update这将采用当前进程列表并更新启动脚本。

希望这有助于!

+0

感谢您的描述,但它不回答我的问题。 – m3dw3

+0

你正在使用一种过时的东西,但最新的版本有一些快速简单的方法来实现相同的功能,那么你可以继续使用最新的版本? –

+0

我知道我可以通过JSON配置和CLI命令来完成应用程序设置和重新加载。我的问题是,如果我使用一个配置JSON,比'脚本'属性中的env var没有得到解决。 – m3dw3