【问题标题】:Trying to use upstart to run npm script, but can't find where npm is installed尝试使用 upstart 运行 npm 脚本,但找不到 npm 的安装位置
【发布时间】:2017-11-22 01:01:10
【问题描述】:

我通过 AWS EC2 启动了一个 Amazon Linux 实例。我正在尝试编写一个新贵脚本,该脚本将在实例启动时启动我的节点服务器。

如果我在终端运行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

【问题讨论】:

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

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


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-03
    • 1970-01-01
    • 1970-01-01
    • 2016-11-01
    • 2018-09-10
    • 2018-03-15
    相关资源
    最近更新 更多