一尘不染

如何在AWS上的Amazon Linux AMI中自动启动node.js应用程序?

linux

是否有简短的指南来说明实例启动并运行时如何启动应用程序?如果它是已安装的服务之一,yum那么我想可以将/sbin/chkconfig其添加到服务中。(请确保正确吗?)

但是,我只想运行未通过安装的程序yum。要运行node.js程序,sudo node app.js每当系统启动时,我都必须在主目录中运行脚本。

我不习惯使用Amazon Linux AMI,因此,我很容易找到一种“正确”的方式来在每次引导时自动运行某些脚本。

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


阅读 331

收藏
2020-06-03

共1个答案

一尘不染

一种方法是创建新贵工作。这样,您的应用程序将在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)为您的节点应用程序创建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

2020-06-03