【问题标题】:pm2 doesn't startup in ubuntupm2 无法在 ubuntu 中启动
【发布时间】:2016-11-12 15:25:18
【问题描述】:

我试图在启动时运行 pm2,但没有成功..

我在 ubuntu 16.04 中安装。

我的 npm 目录位于:~/.npm-global。

在那里,我可以看到pm2 -> ../lib/node_modules/pm2/bin/pm2

没有转储文件。

我的 pm2 目录是 ~/.pm2:

在那里,我可以看到 dump.pm2 和 rpc.sock

如果我这样做:

sudo $(which pm2) start app.js 
sudo $(which pm2) startup ubuntu -u $USER
sudo $(which pm2) save

它告诉我:

Generating system init script in /etc/init.d/pm2-init.sh
[PM2] Making script booting at startup...
[PM2] -ubuntu- Using the command:
      su -c "chmod +x /etc/init.d/pm2-init.sh && update-rc.d pm2-init.sh defaults"


[PM2] Done.
[PM2] Saving current process list...
[PM2] Successfully saved in /home/theUser/.pm2/dump.pm2

我可以看到应用程序运行良好。

如果我这样做,sudo ~/.npm-global/bin/pm2 start /etc/init.d/pm2-init.sh,它会给我:

events.js:160
      throw er; // Unhandled 'error' event
            ^
Error: connect EACCES ~/.pm2/rpc.sock
    at ....

/etc/init.d/pm2-init.sh 有:

NAME=pm2
PM2=/home/theUser/.pm2
USER=theUser
DEFAULT=/etc/default/$NAME

export PATH=/usr/bin:$PATH
export PM2_HOME="/home/theUser/.npm-global/lib/node_modules/pm2/bin/"

我也尝试过使用:export PM2_HOME="/home/theUser/.pm2

当我从 /etc/init.d/pm2-init.sh 启动 scipt 时,它说它不能转储(可能是因为转储只存在于 ~/.pm2 目录中)

如果我尝试:

    sudo $(which pm2) start app.js 
    sudo $(which pm2) startup systemd -u $USER
    sudo $(which pm2) save

并手动执行(因为它无法以普通用户身份找到 pm2):

sudo ~/.npm-global/pm2 dump && ~/.npm-global/pm2 kill && systemctl daemon-reload && systemctl enable ~/.npm-global/pm2 && systemctl start ~/.npm-global/pm2

所以,

1) 我不确定是否必须运行 sudo $(which pm2) startup systemd -u $USER 或 sudo $(which pm2) startup ubuntu -u $USER

2) 我应该有什么 PM2 和 PM2_HOME?

3) 如何将~/.npm-global/bin 添加到 sudo 路径,或者通常如何在我以 sudo 运行 pm2 时使用此路径。注意,我不想更改 /etc/sudoers。

【问题讨论】:

    标签: node.js pm2


    【解决方案1】:

    我无法回答您的所有问题,但我遇到了同样的问题,这对我有用: http://www.anicehumble.com/2016/05/pm2-must-not-be-ran-with-sudo.html

    【讨论】:

    • pm2 startup 命令仍然失败 Failed to start pm2-root.service: Unknown unit: pm2-root.service
    猜你喜欢
    • 2016-04-21
    • 2015-12-22
    • 2021-04-11
    • 2019-01-14
    • 2021-06-24
    • 1970-01-01
    • 2019-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多