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