簡體   English   中英

AWS EC2 AMI 用戶數據運行 PM2

[英]AWS EC2 AMI User Data run PM2

我想在實例啟動時啟動我的應用程序。 我使用了以下用戶數據,但我看不到任何在 pm2 中運行的進程。

注意:使用 AMI 創建實例。 NodeJs、PM2 和所有依賴項都已安裝。 我可以 SSH 到服務器並手動使用 pm2 啟動我的應用程序。

#!/bin/bash
pm2 start /home/ubuntu/foyrinfrasubscription/server/server.js --name "ReportSub"
pm2 save
pm2 resurrect

我推薦使用 pm2 啟動命令來創建初始化服務腳本

手動的:

https://pm2.keymetrics.io/docs/usage/startup/

例子:

https://futurestud.io/tutorials/pm2-restart-processes-after-system-reboot

我對此有一些問題,因為我想使用用戶數據設置環境變量,默認情況下,常規的pm2 startup腳本也與用戶數據(cloud-final)腳本同時運行。

我找到了一種非常老套的方法 - 我不建議這樣做:

首先,我必須更改 pm2 啟動的順序,以確保它在用戶數據設置參考后觸發: https://serverfault.com/questions/871328/start-service-after-aws-user-data-has-run

然后,我找不到設置環境變量的方法,因為它們位於不同的 session 中。 轉儲到.bashrc/etc/profiles不起作用。 所以,我只是用我的設置修改.pm2/dump.pm2

如果有人對如何更好地做到這一點有任何建議,那就太好了!

除了如其他答案中所述通過 systemd 設置 pm2 之外,使用 pm2“生態系統”文件還允許傳遞在用戶數據中收集的環境變量。 由於設置可能面向運行特定節點服務與通用 pm2 管理的服務器,因此可以更新 systemd 服務文件以使用在用戶數據流中以編程方式編輯的生態系統文件,例如,

ExecStart=/usr/lib/node_modules/pm2/bin/pm2 start /etc/systemd/system/pm2-ecosystem-my.config.js

並且 ExecReload 行被注釋掉(可選)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM