作为一个不同的用户永远在su内运行

我正在经历奇怪的行为永远,我想用来保持活着我的节点应用程序。

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

我需要知道如何在root模式下正常运行,但作为用户lwood 。 (这是必要的,因为,例如,作为特殊情况,新贵脚本以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之下运行!

我该如何解决这个问题?

如果你使用暴发户,试试这个(把它放到你的暴发户脚本)

exec su -s / bin / sh -c'exec“$ 0”“$ @”'username – / usr / local / bin / forever …

参考: https : //superuser.com/questions/213416/running-upstart-jobs-as-unprivileged-users

可能是因为它作为不同用户的不同环境运行。 也许你需要添加sudo一个膨胀的名单:

 sudo -u lwood forever list