我正在尝试使用PM2进程pipe理器。 我正在安装它与franklinkim.pm2angular色
它工作,它启动我的节点的应用程序,如果我手动杀死节点的应用程序,我看到PM2重新启动它
但是…,我似乎可以访问现有的PM2实例。
如果inputps aux | grep PM2 ps aux | grep PM2我得到了
root 1073 4.1 8.3 648348 41736 ? Ssl 06:12 0:00 PM2 v0.12.15: God Daemon
现在我想看PM2的进程列表,所以我键入sudo pm2 list ,我得到
[PM2] Spawning PM2 daemon [PM2] PM2 Successfully daemonized ┌──────────┬────┬──────┬─────┬────────┬─────────┬────────┬────────┬──────────┐ │ App name │ id │ mode │ pid │ status │ restart │ uptime │ memory │ watching │ └──────────┴────┴──────┴─────┴────────┴─────────┴────────┴────────┴──────────┘ Use `pm2 show <id|name>` to get more details about an app
失败! 它不是向我展示运行的PM2,而是产生了一个新的PM2
我试过sudo -u root pm2 list ,只是pm2 list但我得到了相同的结果,或者如果第二个已经运行,我只看到从第二个实例,而不是运行我的应用程序的列表。
我觉得无论是什么原因,这是对Linux上的用户和进程的一些根本的误解,我还没有grok。
pm2将使用$HOMEvariables来确定.pm2目录所在的位置。 当然,你可以用 $PM2_HOMEvariables覆盖它
当你使用ansible调用pm2时,看起来就像使用root用户一样。 所以.pm2目录位于/root/.pm2 。 所以,解决scheme是使用命令
sudo -i pm2 list
当你不使用-i参数调用sudo ,所有的环境variables(包括$HOME )在sudo之前仍将inheritance原始帐户。