2016-11-15 19 views
0

私はExpressjsフレームワークを使用してNodejsでアプリケーションを作成しています。ノードサーバーベースのインターバルスクリプトを停止するにはどうすればいいですか?

JavaScriptのsetInterval()メソッドを使用して毎分スクリプトを実行しようとしました。

node app.jsでサーバーを起動すると、スクリプトは正常に実行されます。しかし、私はCtrl+cでサーバを停止し、それを再起動しようとすると3000(私のサーバポート)がすでに使用中であると言います。

サーバーを再起動できず、自分のWebサイトにアクセスできません。私はUbuntuを使用しています。

以下のすべてのコマンドを使用しましたが、停止しません。

  1. 3000/tcpの-k定着

  2. processNumber

  3. killallをノード

コード殺す:事前に

router.get("/trackplayers", function(req, res, next) { 
    // Run in every minute 
    setInterval(function(){ 
     console.log('Players tracking is under process..'); 
    }, 60000); 
}); 

感謝を!

+1

あなたはコードが役立つ貼り付けると..しかし、代わりに設定された間隔の私のunderstadingあたりとして、より良い私たちは、実行が再びコールバックで完了したら、あなたは関数を実行することができるようになりますsettimout使用して、どの..コールバックとsettimoutで行きます新しいsettimeoutを作成します。 –

+0

'Ctrl + c'を押した後、' ps aux'を実行してもプロセスが動作しているようですか? –

+0

ps auxまたはps auxと入力すると、プロセスは存在しません。 grepノード – Tahir

答えて

0

プロセスを完全に終了してください。次のコードは、明示的にアプリケーションを正常終了させます。

var express = require("express"); 
var app = express(); 
var server = app.listen(3000); 
// Respond to 'Ctrl+C' 
process.on("SIGINT", function() { 
    // stop accepting connections 
    server.close(function() { 
    // connections are closed 
    // exit the process 
    process.exit(0); 
    }); 
}); 
// Server is shutting down 
process.on("SIGTERM", function() { 
    // stop accepting connections 
    server.close(function() { 
    // connections are closed 
    // exit the process 
    process.exit(0); 
    }); 
}); 
+0

ありがとう皆さん!助けになる – Tahir

関連する問題