2014-09-02 45 views
1

我试图用upstart作为非root用户来运行nodejs应用程序。
但不知何故部分的脚本将不会运行:例如:UPSTART脚本非root不能正常工作

  1. 如果我运行它像一个超级用户(如下图所示)NODE_ENV不会被调用/套
  2. 到所谓的唯一途径是"sudo initctl stop pdcapp"
  3. sudo nameofApp start|stop是行不通的
  4. 调用时sudo initctl stop nameofApp前停止脚本不会回显到日志文件
  5. ,如果我尝试runit像非root用户将不会开始

是不是一个更简单的方法做到这一点(systemd)我看了各种教程,显然这是他们如何完成。所以我在这里错过了什么?

这是在/ var/log/messages中我得到这个,当我停止该应用程序在/ etc /初始化/

env FULL_PATH="/srv/pd/sept011100/dev" 

env NODE_PATH="/usr/local/nodeJS/bin/node" 
env NODE_ENV=production 

start on filesystem or runlevel [2345] 
stop on [!2345] 

script 
    export NODE_ENV #this variable is never set 
    echo $$ > /var/run/PD.pid 
    cd $FULL_PATH 

    # the command below will not work 
    #exec sudo -u nginx "$NODE_PATH server.js >> /var/log/PD/pdapp.log 2>&1" 
    exec $NODE_PATH server.js >> /var/log/PD/pdapp.log 2>&1 
end script 

pre-start script 
    echo "[`date`] (sys) Starting" >> /var/log/PD/pdapp.log 
end script 

pre-stop script 
    rm /var/run/pdapp.pid 
    echo "[`date`] (sys) Stopping" >> /var/log/PDC/pdapp.log 
end script 

.conf文件,否则我什么也没有在日志文件中

Sep 2 18:23:14 547610-redhat-dev2 init: pdcapp pre-stop process (6903) terminated with status 1 
Sep 2 18:23:14 547610-redhat-dev2 init: pdcapp main process (6899) terminated with status 143 

任何想法,这是为什么不工作,我的redhat 6.5运行

回答

1

红帽拥有超旧版本的新贵这可能是完全错误的,因为他们从来没有促成新贵,尽管使用它(FEDO ra在RHEL 6发布后立即切换到systemd,之后他们甚至真正尝试了它)。