sudo pm2 命令未找到 pm2 已安装

sudo pm2 command node found pm2 already isntalled

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

我有设置项目并想让节点永久化,所以我在全局安装了 pm2,但是当我尝试使用此命令使用 pm2 启动节点应用程序时

sudo pm2 start index.js

它给我错误:

sudo:pm2 is not a command

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

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

sudo env PATH=$PATH pm2 start index.js

这应该可以满足您的要求。

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

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

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