如何更改调用 pm2 的默认目录

Mic*_*ael 4 pm2

我有一个由pm2 管理的nodejs 服务器,但它以不同的用户身份运行(www-data,通过su)。我需要启动第二个服务器作为我自己的用户 ID 运行,但是当我尝试启动它时,我收到访问错误,因为 ~/.pm2 归 www-data 所有,而不是我自己。我尝试使用--logpm2 选项,但这不允许我设置全局 pm2 目录,只能设置日志文件。

如何指定 pm2 使用不同的目录?

apo*_*tek 5

简短的答案是为 pm2 设置不同的主目录...

$ export PM2_HOME=/your/pm2/home
$ <your pm2 commands>
Run Code Online (Sandbox Code Playgroud)

当然,您希望将 .pm2 目录放入的任何目录都必须可由您调用 pm2 的用户写入。

长的答案是关闭由 www-data 运行的正在运行的服务器,并从主目录中删除 ~/.pm2 目录。

然后,当您以 www-data 用户身份启动 pm2 进程时,请执行以下操作

$ su -c "PM2_HOME=/path/writable/by/www-data/user <pm2 commands>" www-data
Run Code Online (Sandbox Code Playgroud)

现在,现有的 pm2 服务器应该作为 www-data 运行,其运行时文件位于您为 www-data 用户设置的任何目录中。

这意味着您现在可以在运行任何 pm2 命令时使用自己的主目录(默认情况下),而无需配置任何 PM2_HOME 变量。