質問: connect(); app.use(serveStatic(__dirname)); app.listen(5000); ``` これを ``` node LocalServer.js ``` とコマンドを実行するようシェルスクリプトの中に記述しています。 ■問題点 ``` node LocalServer.js ``` と実行するとファイルサーバーが起動中となり コマンドラインにレスポンスが返ってこないため Jenkinsのジョブがいつまでも実行中となり ファイルサーバー起動中はジョブが終了となりません。 ファイルサーバーの起動という目的は果たしているので ジョブを完了としたいのですが、 どのようにすれば良いでしょうか? 下記のようなコマンドを記述した場合、node -v はコマンドが走りません。 ``` node LocalServer.js node -v ``` ■環境 MacOSX:10.10.4
回答: バックグラウンド実行するといいと思います。 加えて、サーバープロセスを停止する術を別途考える必要があります。 例えばPIDをファイルに残して、そのPIDをkillするような事を別途考えてみてください。 起動 ``` node LocalServer.js & PID=$! echo $PID > /var/run/LocalServer.pid ``` 停止 ``` PID="`cat /var/run/LocalServer.pid`" kill $PID ```