2014-09-02 41 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,之後他們甚至真正嘗試了它)。