是否有一个简短的指南来解释如何在实例启动并运行时启动应用程序?如果它是通过yum安装的服务之一,那么我想我可以使用/sbin/chkconfig将其添加到服务中.(为了确保它是正确的吗?)

然而,我只想运行这个程序,它没有安装到yum.运行 node .js程序,每当系统启动时,我必须在主目录下运行脚本sudo node app.js.

我不习惯Amazon Linux AMI,所以我很难找到一种"正确"的方法,在每次启动时自动运行一些脚本.

有没有一种优雅的方法可以做到这一点?

推荐答案

一种方法是创造一份新的工作.这样,你的应用程序将在Linux加载后启动,在崩溃时自动重启,你可以在sudo start yourapp/sudo stop yourapp/sudo restart yourapp之前启动/停止/重启它.

以下是开始步骤:

1) 安装upstart实用程序(如果您使用标准的Amazon Linux AMI,可能会预先安装):

sudo yum install upstart

对于Ubuntu:

sudo apt-get install upstart

2) 为 node 应用程序创建upstart脚本:

/etc/init中,使用以下代码行添加文件yourappname.conf:

#!upstart
description "your app name"

start on started mountall
stop on shutdown

# Automatically Respawn:
respawn
respawn limit 99 5

env NODE_ENV=development

# Warning: this runs node as root user, which is a security risk
# in many scenarios, but upstart-ing a process as a non-root user
# is outside the scope of this question
exec node /path_to_your_app/app.js >> /var/log/yourappname.log 2>&1

3) 在sudo start yourappname之前启动你的应用程序

Node.js相关问答推荐

如何使用updateMany()和Node.js的方法?

为高流量网站优化Node.js实时通知服务

使用Node.js中的";类型";:";模块";不导入文件

AWS-ROUTE 53指向S3存储桶,错误是别名目标名称不在目标区域内

如何在医学中按patientId查找一个并同时插入多个数据

Nestjs重写子类dto nodejs中的属性

使用pm2启动服务器

只要我在后端正确验证所有内容,就可以将这些数据存储在本地存储中吗?

在 linux mint 上部署 node 应用程序的最简单方法是什么?

Next.js 在我的电脑上没有构建错误,但它们在使用 Vercel 部署时发生

kubernetes 上的 nextjs 无法启动

使用mongoose 创建新文档并仅取回选定的字段

如何使用 Jest 模拟异步函数的延迟时间

使用 Forms API 进行批量更新时生成 itemId

是Electron 的密码和登录凭据的安全存储吗?

类 WebSwapCGLLayer 在 Mac OS X /System 和 node_modules 中都实现了

Mongoose:查找、修改、保存

无法获取 CSS 文件

当进程被杀死时,如何优雅地关闭我的 Express 服务器?

如何在 node.js 沙箱中安全地运行用户提交的脚本?