我永远遇到了奇怪的行为,我想用它来保持我的 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/