【问题标题】:sudo pm2 command node found pm2 already isntalledsudo pm2 命令未找到 pm2 已安装
【发布时间】:2018-03-19 07:15:27
【问题描述】:

我已经创建了节点应用程序,我想将它部署在 AWS 上。

我有设置项目并希望使节点永久化,因此我已在全局范围内安装了pm2,但是当我尝试使用此命令使用 pm2 启动节点应用程序时

sudo pm2 start index.js

这给了我错误:

sudo:pm2 不是命令

没有sudo我无法启动服务器。

【问题讨论】:

  • 您到底是如何安装 pm2 的?从错误消息来看,似乎缺少 pm2 并且存在 sudo。
  • 我已经使用 sudo npm install pm2 -g 安装了

标签: node.js pm2


【解决方案1】:

显然 pm2 和其他全局模块不在您的根路径中。您可以像这样传递 PATH 变量:

sudo env PATH=$PATH pm2 start index.js

这应该做你想做的。

虽然我主要建议不要这样做,因为您可能不希望您的应用程序以 root 用户运行,而是它自己的隔离和受限用户,因此万一出现漏洞,损害将是有限的。

如果你想在你的机器启动时运行 pm2,那么你可以使用pm2 startup 命令,它将指导你如何正确地执行此操作。

另外,如果您以 root 身份运行您的应用程序,那么您可以在端口 80 上进行监听,那么这是错误的方式。我建议看看这个question。有一些很好的建议,例如使用 ip 表将端口 80 流量转发到另一个不需要您的应用程序在 root 上运行的端口。

【讨论】:

  • 我错过了命令中的env。命令应该是sudo env PATH=$PATH pm2 start index.js。再试一次。我已经更新了答案。
猜你喜欢
  • 2016-11-06
  • 2017-01-24
  • 1970-01-01
  • 1970-01-01
  • 2020-09-30
  • 1970-01-01
  • 1970-01-01
  • 2021-12-07
  • 1970-01-01
相关资源
最近更新 更多