node.js - 尽管 pm2 工作,但 EC2 实例在与 Cloud 9 断开连接时关闭
问题描述
我在 EC2 实例(Ubuntu)上有一个网站(Nodejs),可以通过 pm2 进程访问和运行
问题是 - 关闭 IDE(云 9)后,网站在一段时间后停止工作,一旦我重新登录到“云 9”,在 EC2 实例重新启动后,pm2 就会自动启动。pm2 设置似乎以这种方式工作正常。(我确实运行了 pm2 启动,pm2 保存
从日志:
*PM2 日志:应用程序 [app:0] 通过信号 [SIGINT] 以代码 [1] 退出
PM2 错误:错误:杀死 EPERM*
如https://aws.amazon.com/cloud9/faqs/ AWS Cloud9 EC2 环境中所述 - 使您能够启动 Cloud9 连接到的新 Amazon EC2 实例。默认情况下,这些实例会在您关闭 IDE 30 分钟后停止,并在您打开 IDE 时自动启动。
这是否意味着在 PROD 中我们只能执行 SSH,因此实例不会停止并且网站保持活动状态?或者我如何确保实例没有停止?
解决方案
您在位于底层 EC2 上的 Cloud9 机器上开发网站。它们在 30 分钟后关闭,因为它们不适用于网站托管。
您应该通过 CloudFormation 使用 UserData 脚本设置 EC2 来托管站点。
或者使用您最喜欢的编程语言使用 CLI 或 SDK 来启动它。
或者,如果您不想学习 AWS,您可能想研究 Elastic Beanstalk。
如果您想托管无法在 Cloud9 机器上完成的站点,请部署到 EC2 或考虑使用 Beanstalk。
推荐阅读
- ffmpeg - ffmpeg 将叠加图像添加到已经绘制文本的命令
- android - 在 Xamarin Forms 中为 AAB 指定未压缩文件扩展名时无法编译
- java - Java 8将for循环和值的总和转换为流/ lambda?
- html - 如何在输入类型文本上使用 innerHTML 编写?
- tsql - Flyway 在 Transact-SQL 迁移中因错误而失败
- dataframe - 从 Julia DataFrame 创建加权图
- node.js - 在项目目录中安装 npm 模块时出现警告,但在全局安装时没有
- php - 为什么浏览器显示 404 视图而不是在此 Codeigniter 3 应用程序中加载样式表?
- javascript - 如何制作逗号分隔元素的对象
- javascript - Discord.js 通过对消息做出反应来添加角色