【发布时间】:2021-04-24 14:07:37
【问题描述】:
问题来了,我的节点应用需要 root 权限才能在子进程上使用 os.setPriority。
所以我需要使用 sudo 运行应用程序,但我希望我的 .pm2 文件夹保留在我的 /home/user 目录中,以便我的用户可以访问日志文件,而不是 /root。
如果我以用户身份运行 pm2 start app.js,则没有 root 权限。
如果我运行 sudo pm2 start app.js,它会保存在 /root/.pm2 下(用户无法访问的日志文件)
如果我运行sudo PM2_HOME=/home/user/.pm2 pm2 start app.js,我仍然没有使用 os.setPriority 的权限!如果我之后运行sudo pm2 ls,它不存在,它会在用户守护进程上运行。这个命令和第一个命令的唯一区别是当我以用户身份运行pm2 ls 时,它在用户列下将进程列为“root”。
有什么想法吗?
【问题讨论】:
-
如果您主要关心的是能够查看日志,那么为什么不使用带有
sudo和--logs [path]选项的运行PM2 将日志推送到root 用户都可以访问的文件夹并且您的特权用户有权访问?