尝试使用upstart运行npm脚本,但无法找到安装npm的位置

时间:2017-06-19 17:47:25

标签: node.js amazon-ec2 npm upstart nvm

我通过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

1 个答案:

答案 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