微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

以具有 root 权限的用户身份启动 PM2 进程

如何解决以具有 root 权限的用户身份启动 PM2 进程

问题来了,我的节点应用程序需要 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”。

有什么想法吗?

解决方法

将其保存为 process.json 然后使用 sudo pm2 start process.json 参考:https://pm2.keymetrics.io/docs/usage/log-management/

    {
          script: 'app.js',error_file: '/home/user/.pm2/log/err.log',out_file: '/home/user/.pm2/log/out.log',log_file: '/home/user/.pm2/log/combined.log'
        }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。