我想在啓動時運行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