我想在启动时运行pm2没有成功..pm2在ubuntu中不启动
我在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
,当我开始从素文字它说它不能转储(可能是因为转储只存在于〜/ .pm2目录中)
如果我尝试:
sudo $(which pm2) start app.js
sudo $(which pm2) startup systemd -u $USER
sudo $(which pm2) save
和手动执行(因为它无法找到PM2作为普通用户):
须藤〜/ .npm全局/ PM2倾倒& &〜/。 NPM-全球/ PM2杀& & systemctl守护重装& & systemctl启用〜/ .npm全局/ PM2 & & systemctl启动〜/ .npm全局/ PM2
所以,
1)我不知道如果我要运行sudo $(which pm2) startup systemd -u $USER
或sudo $(which pm2) startup ubuntu -u $USER
2)PM2和PM2_HOME我应该怎么办?
3)如何将sudo路径添加~/.npm-global/bin
,或者当我将pm2作为sudo运行时,一般如何使用此路径。注意,我不想更改/ etc/sudoers。
的'PM2 startup'命令仍然失败'无法启动PM2-root.service:未知单元:pm2-root.service' – BRogers