2017-10-02 15 views
0

初めてスクリプトを作成するときに再生していて、いくつかのnode.jsアプリをループして開始したいと考えています。ループが壊れても最初のアプリを起動するたびに最初の繰り返しの後にループ内で「ノードapp.js」を実行する

私は解決策を得るためにいくつかの時間を検索しssh</dev/nullに使用-nフラグに見て、コマンドの新しいターミナルを作成する(command)を使用してきました。おそらく答えはこれらにありますが、私はそれを見ていません。

ご迷惑をおかけして申し訳ありません。ありがとう!

for A in "${ARR[@]}" 
do 
    case $A in 
     $APP1) 
      DIR=$APP1_DIR; FILE=$APP1_FILE; 
      ;; 
     $APP2) 
      DIR=$APP2_DIR; FILE=$APP2_FILE; 
      ;; 
     *) 
      printf "KABLAMO!" 
      ;; 
    esac 

    if [ -d $DIR ]; then 
     (cd $DIR && node $FILE); 

     # get nothing after here on first iteration and script hangs at this point 

    fi 
done 
+0

node.jsスクリプトは何をしますか?これは、ループを続行する前にスクリプトが終了するのを待ちます。待機したくない場合は、バックグラウンドで実行してください。 – Barmar

+0

質問のために修正するときにいくつかのタイプミス、@ Barmarを指摘してくれてありがとうnode.jsスクリプトは常に稼働してポートでリッスンしているサーバなので、本当に終了することはありません。これは問題ですか? – webstudent

答えて

1

スクリプトは終了しないので、待機せずに続行する必要があります。ですから、&でバックグラウンドで実行する必要があります。

(cd "$DIR" && node "$file" &) 
+0

あなたは英雄です!どうもありがとう!単一の ''& ''は、もっと複雑になりたいと思っています! :Pはグーグルでこれを何時間も見つめていました!雷の速い応答のためにそんなにありがとう! – webstudent

関連する問題