在机器启动时启动节点服务器

时间:2017-10-24 17:25:25

标签: node.js ubuntu-16.04 upstart

我试图通过使用nodeserv.conf文件中的以下代码在upstart启动机器(ubuntu 16.04)时启动node.js服务器:

#!upstart
description "Node.js server"
author "Sushant Kumar"

start on started mountall
stop on shutdown

respawn
respawn limit 99 5

script
    export APP_HOME = "/home/ubuntu/chatbot_server"
    export HOME = "/home/ubuntu"
    cd $APP_HOME
    exec sudo -u ubuntu /usr/local/nodejs/bin/node $HOME/chatbot_server/server.js >> /var/log/chatbotserv.log 2>&1
end script

post-start script
    echo "Node Started"
end script

,但我运行命令

# start nodeserv

我收到了以下错误:>>start: Job failed to start。 任何人都可以帮助我,在我出错的地方吗?

编辑:此服务器托管在AWS EC2实例上(如果有帮助,我认为它不相关,但以防万一)。

2 个答案:

答案 0 :(得分:0)

您可以将应用作为服务运行来完成此操作。您可以使用forever确保给定脚本连续运行。首先,您需要永远安装。然后转到项目目录并安装forever-monitor。现在您可以启动您的应用。

npm install forever -g
cd /path/to/your/project
npm install forever-monitor
forever start app.js

现在您需要使用forever-service将节点脚本构建为服务。首先,安装forever-service,然后将您的应用程序安装为服务。

npm install -g forever-service
forever-service install test

如果您想处理脚本,可以在脚本中替换此代码。

export HOME="/root"
exec /usr/local/nodejs/bin/node /home/ubuntu/chatbot_server/server.js >> /var/log/node.log 2>&1

答案 1 :(得分:-1)

看看PM2

PM2是一个非常强大的Node.js流程管理器。

安装应用后,您可以在启动时轻松设置:

sudo systemctl start pm2-yourusername