我正在尝试使用PM2流程管理器。我正在使用 ansible 和franklinkim.pm2 角色安装它
它有效,它启动我的节点应用程序,如果我手动终止节点应用程序,我会看到 PM2 重新启动它
但是...,我似乎可以访问现有的 PM2 实例。
如果输入ps aux | grep PM2我得到
root 1073 4.1 8.3 648348 41736 ? Ssl 06:12 0:00 PM2 v0.12.15: God Daemon
Run Code Online (Sandbox Code Playgroud)
现在我想查看 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
Run Code Online (Sandbox Code Playgroud)
失败!它没有向我展示正在运行的 PM2,而是产生了一个新的 PM2
我已经尝试过sudo -u root pm2 list,pm2 list但我得到了相同的结果,或者如果第二个已经在运行,我只能看到第二个实例的列表,而不是运行我的应用程序的列表。
我觉得无论是什么原因,它都是对 linux 上的用户和进程的一些根本误解,我还没有理解。
pm2将使用$HOME变量来确定.pm2目录所在的位置。当然你可以用 $PM2_HOME变量覆盖它
当您使用 ansible 调用 pm2 时,看起来您已经使用了 root 用户。因此,.pm2目录位于/root/.pm2. 所以,解决方案是使用命令
sudo -i pm2 list
Run Code Online (Sandbox Code Playgroud)
当您sudo不带-i参数调用时,所有环境变量(包括$HOME)仍将继承自 sudo 之前的原始帐户。
| 归档时间: |
|
| 查看次数: |
6267 次 |
| 最近记录: |