我永远遇到了奇怪的行为,我想用它来保持我的 Node 应用程序的事件状态。

我想以我的普通用户 lwood 运行我的永久进程,而不是 root

我需要知道如何在 root 模式下永远正确运行,但是 作为用户 lwood 。 (这是必需的,因为例如作为一种特殊情况, Upstart 脚本以 root 身份运行。)

这些命令说明了我的问题(我在 Ubuntu 12.04 上,$ 是普通用户,# 是 root):

$ su
[type in su password]

# cd /home/lwood/myapp
# sudo -u lwood forever -a -l "/home/lwood/myapp/logfile.log" start app.js
info:    Forever processing file: app.js

# forever list
info:    No forever processes running

# exit

$ forever list
info:    No forever processes running

所以永远成功启动,但没有进程在 lwood 和 root 下运行!

我该如何解决这个问题?

最佳答案

如果你正在使用 upstart,试试这个(把它放到你的 upstart 脚本中)

exec su -s/bin/sh -c 'exec "$0""$@"' 用户名 --/usr/local/bin/forever ...

引用:https://superuser.com/questions/213416/running-upstart-jobs-as-unprivileged-users

关于node.js - 以不同的用户身份在 su 中永远运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18940512/

10-13 07:26