Node.js 试图使用upstart运行npm脚本,但无法';找不到npm的安装位置
我通过AWSEC2启动了一个AmazonLinux实例。我正在尝试编写一个upstart脚本,该脚本将在实例启动时启动节点服务器 如果我在终端中运行Node.js 试图使用upstart运行npm脚本,但无法';找不到npm的安装位置,node.js,amazon-ec2,npm,upstart,nvm,Node.js,Amazon Ec2,Npm,Upstart,Nvm,我通过AWSEC2启动了一个AmazonLinux实例。我正在尝试编写一个upstart脚本,该脚本将在实例启动时启动节点服务器 如果我在终端中运行npm start,我的节点服务器将成功启动。我正在使用以下upstart脚本,但它不会启动我的服务器 # Upstart Script for My Server description "my-server" start on started mountall stop on shutdown # Automatically Respawn
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:没有这样的文件或目录
我的问题是因为我有(节点版本管理器)。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
为什么要使用upstart(现在基本上已被放弃)而不是systemd/monit/pm2/等等?