14784


Jenkinsでシェルの実行からあるシェルスクリプトを実行しようとしています。

シェルスクリプトの内容としては、  
Node.Jsのコマンドを使用してjavascriptを実行し、  
指定フォルダをファイルサーバーとする事です。

javascriptの中身は下記のようになっており、

■LocalServer.js

[code]

    var connect = require('connect'),
        serveStatic = require('serve-static');
        var app = connect();
        app.use(serveStatic(__dirname));
        app.listen(5000);
    
[/code]

これを

[code]

    node LocalServer.js
    
[/code]

とコマンドを実行するようシェルスクリプトの中に記述しています。

■問題点

[code]

    node LocalServer.js
    
[/code]

と実行するとファイルサーバーが起動中となり  
コマンドラインにレスポンスが返ってこないため  
Jenkinsのジョブがいつまでも実行中となり  
ファイルサーバー起動中はジョブが終了となりません。

ファイルサーバーの起動という目的は果たしているので  
ジョブを完了としたいのですが、  
どのようにすれば良いでしょうか？

下記のようなコマンドを記述した場合、node -v はコマンドが走りません。

[code]

    node LocalServer.js
    
    node -v 
    
[/code]

■環境  
MacOSX：10.10.4


CC BY-SA 3.0
2015-08-24T05:46:25.637
14783
2015-08-31T08:18:20.877
2015-08-31T08:18:20.877
5008
5261
question
node.js shellscript jenkins
Jenkinsのシェルの実行を完了とみなすには？


バックグラウンド実行するといいと思います。  
加えて、サーバープロセスを停止する術を別途考える必要があります。  
例えばPIDをファイルに残して、そのPIDをkillするような事を別途考えてみてください。

起動

[code]

    node LocalServer.js &
    PID=$!
    echo $PID > /var/run/LocalServer.pid
    
[/code]

停止

[code]

    PID="`cat /var/run/LocalServer.pid`"
    kill $PID
    
[/code]


CC BY-SA 3.0
2015-08-24T06:01:37.830
14784
2015-08-24T06:44:16.410
2015-08-24T06:44:16.410
5008
5008
14783
answer