我在/etc/rc.local
添加了一行,以便在重启后启动节点进程:
/usr/local/bin/node /home/ubuntu/app/index.js &
问题是该过程以root
运行。
如何指定非root用户来运行节点进程?
答案 0 :(得分:1)
告诉系统以与root不同的用户身份运行您的流程将是一个更适合Ubuntu论坛或Unix SE网站的问题。
至于如何从Node.js流程中将用户更改为非特权用户,您可以分别使用process.setuid()
和process.setgid()
来更改用户和组ID。
请注意,将这些更改为非root值后,您将无法返回提升的root权限。
答案 1 :(得分:1)
我会尝试这个,但我还没有在你的背景下测试它:
exec sudo -u nodejs /usr/local/bin/node /home/ubuntu/app/index.js &
答案 2 :(得分:1)
您可以使用此行与其他用户一起运行:
su -c "/usr/local/bin/node /home/ubuntu/app/index.js" & -s /bin/sh <username>