繁体   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