首页 文章

如何将pm2启动与非root用户一起使用?

提问于
浏览
3

根据这里的文件:http://pm2.keymetrics.io/docs/usage/startup/#startup-systems-support

您可以使用命令 pm2 startup ubuntu -u nodeapps 在服务器启动时恢复所有已保存的pm2作业 .

我以nodeapps用户身份运行此命令 . 然后我被给了一个sudo su命令来运行 . 我注销了nodeapps,使用sudo su以root身份登录系统,然后运行命令:

sudo su -c "env PATH=$PATH:/usr/bin pm2 startup ubuntu -u nodapps --hp /home/nodeapps"

服务器重新启动时,进程未重新启动 . 我在Stack Overflow上找到了这个问题:Ubuntu 14.04 - pm2 startup not starting after reboot .

在脚本 /etc/init.d/pm2-init.sh 中,我找到了建议寻址的问题:

export PATH=/usr/bin:$PATH
export PM2_HOME="/home/nodeapps/.pm2"

但它看起来对我来说是正确的,所以我没有改变任何东西 .

然后我发现了这个问题:pm2 Startup not starting up on Ubuntu

在我的启动日志中,我找到以下行:

Starting pm2
/usr/bin/env: node: No such file or directory

我知道Ubuntu上的'node'实际上是'nodejs' . 这可能是原因吗?

如果是,我该怎么做才能使启动命令查找nodejs而不是node .

或者,这可能是$ PATH问题吗?如果是,如何向root添加正确的路径(至少我认为它应该添加到root)

1 回答

  • 2

    (代表OP发布) .

    事实上这就是问题所在 . 修复了通过创建符号链接(以root身份):

    ln -s /usr/bin/nodejs /usr/sbin/node
    

相关问题