我通过AWS EC2启动了一个Amazon Linux实例。我试图编写一个upstart脚本,它将在实例启动时启动我的节点服务器。
如果我在终端中运行npm start
,我的节点服务器将成功启动。我使用以下的upstart脚本,但它没有启动我的服务器。
# Upstart Script for My Server
description "my-server"
start on started mountall
stop on shutdown
# Automatically Respawn
respawn
respawn limit 99 5
# Environment Variables
env NODE_ENV=development
# Script to Start Server
script
cd /home/ec2-user/my-server
exec /usr/bin/npm start >> /var/log/my-server.log 2>&1
end script
检查/var/log/my-server.log
文件会告诉我/user/bin/npm: No such file or directory
。
答案 0 :(得分:1)
我的问题是因为我有installed node using NVM(节点版本管理器)。 NPM未安装在我的/user/bin
目录中。我只需要找到NVM安装的位置。
# Script to Start Server
# - Referencing 'npm' from Node Version Manager (NVM) install location.
script
cd /home/ec2-user/my-server
exec /home/ec2-user/.nvm/versions/node/v4.4.5/bin/npm start >> /var/log/my-server.log 2>&1
end script