2017-06-19 86 views
0

我通过AWS EC2启动了Amazon Linux实例。我试图编写一个启动脚本,当实例启动时启动我的节点服务器。尝试使用upstart运行npm脚本,但找不到npm的安装位置

如果我在终端运行npm start,我的节点服务器启动成功。我正在使用下面的新贵脚本,但它不启动我的服务器。

# 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

为什么要用upstart(现在已经基本放弃了)而不是systemd/monit/pm2/etc。 ? – mscdex

回答

0

我的问题是由于我有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