2017-03-11 8 views
1

私の/etc/init-d/foreverにスクリプトを入れて、foreverがNode.jsアプリケーションを起動および停止する方法を設定しています。.shスクリプトで永遠にコマンドとして "npm start"を使用してください

コマンドnpm startを使用してforeverを開始したいので、そこからスクリプトをトリガーできます。これは可能ですか?

私は

sudo forever start --sourceDir /home/my-app -c npm start 

を試してみましたが、その間違ったこれまでのところ...

info: Forever processing file: start
error: Cannot start forever
error: script /root/start does not exist.

私のスクリプトを解釈しますが次のとおりです。

NAME=nodeapp 
SOUREC_DIR=/home/nodeapp   
COMMAND="npm start" 
SOURCE_NAME=index.js 
USER=root 
NODE_ENVIROMENT=production 

pidfile=/var/run/$NAME.pid 
logfile=/var/log/$NAME.log 
forever=forever 

start() { 
    export NODE_ENV=$NODE_ENVIROMENT 
    echo "Starting $NAME node instance : " 

    touch $logfile 
    chown $USER $logfile 

    touch $pidfile 
    chown $USER $pidfile 

    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080 
    sudo -H -u $USER $forever start --pidFile $pidfile -l $logfile -a --sourceDir $SOUREC_DIR -c $COMMAND 

    RETVAL=$? 
} 
+0

それはあなたが '「NPM開始」'の後のパス、あなたのアプリのディレクトリを必要とすることができますが、確かではありません、確認します。https:// githubの.com/foreverjs/forever/issues/540 –

+0

@AntonioVal私はすでにそのソリューションを見て失敗していました。しかし、今それを行う方法を見つけた!これも見ていただきありがとうございます! – Rikard

答えて

3

だから私は答えを見つけました。 両方--sourceDir
、必要な"npm start"コマンドの後のパスパラメータは:

sudo forever --sourceDir /home/my-app -c "npm start"/
関連する問題