2016-02-16 53 views
1

我目前正在努力構建一個啓動我的web應用程序的腳本。通過foreverjs執行gulp任務

我想使用foreverjs,因爲我已經開始使用它的後端。我的json文件,將由foreverjs執行如下所示:

[ 
{ 
    "uid": "my_backend", 
    "append": true, 
    "script": "app.js", 
    "sourceDir": "/path/to/backend/" 
}, 
{ 
    "uid": "my_frontend", 
    "append": true, 
    "script": "???", 
    "command": "gulp dist && gulp production" 
    "sourceDir": "/path/to/frontend/" 
} 
] 

我不太清楚我應該在前端使用什麼。我需要使用gulp,所以我會假設我必須在'command'中添加它。但是,我的腳本需要爲空,這是永遠不允許的。任何關於如何通過foreverjs運行吞嚥的建議?

+0

這些天[pm2](https://www.npmjs.com/package/pm2)是一個更好的選擇;) –

+0

哦謝謝,沒有意識到這一點 – Frame91

回答

0

我解決了它自己,使用下面的腳本爲我的init.d:

WORKINGDIR=/usr/local/app/my/app 
SCRIPT='/usr/local/app/my/app/node_modules/gulp/bin/gulp.js production' 
LOG=/usr/local/app/my/app/log 
PID=/root/.forever/pids/myapp.pid 
FOREVER=/usr/local/node/node-default/bin/forever 
UID_APP='myapp' 
case "$1" in 
    start) 
     $FOREVER start --workingDir $WORKINGDIR --uid $UID_APP -l $LOG/forever.log -o $LOG/forever_out.log -e $LOG/forever_err.log --pidFile $PID -a $SCRIPT 
     ;; 
    stop) 
     $FOREVER stop $UID_APP --pidFile $PID 
     ;; 
    stopall) 
     $FOREVER stopall --pidFile $PID 
     ;; 
    restartall) 
     $FOREVER restartall --pidFile $PID 
     ;; 
    reload|restart) 
     $FOREVER restart -l $LOG/forever.log -o $LOG/forever_out.log -e $LOG/forever_err.log --pidFile $PID -a $SCRIPT 
     ;; 
    list) 
     $FOREVER list 
     ;; 
    logs) 
     $FOREVER logs 
     ;; 
     *) 
      echo "Usage: /etc/init.d/myservice {start|stop|restart|reload|stopall|restartall|list}" 
      exit 1 
      ;; 
    esac 
    exit 0 

基本上使用/路徑/到/永遠啓動--workingDir 'MYDIR'/路徑/要/一飲而盡[ gulpTask]的作品。