2

シャットダウン関数をnodejsアプリケーション(バージョン0.8.12)にバインドしようとしています。私はたくさんの子プロセスを生成し、分散環境で作業しているので、現在、次の方法でアプリケーションを強制終了しています。

var n = spawn('killall', ['node']);

問題は、これで明らかにon('exit', ...)ロジックが機能しなくなったことです。実際、私は次のようなものを持っています。

process.on('exit', function() {
    if(exit_cb)
        exit_cb()
    else
        console.log('About to exit.');
});  

そして、アプリケーションを強制終了するたびに起動しません。

コマンドを使用してシャットダウンフックを追加する方法はありkillallますか、それともフックを機能させるために子プロセスを強制終了する別の方法を見つける必要がありますか?

ありがとう

4

1 に答える 1

3

dafaultによって送信されるSIGTERM信号をリッスンする必要があります。killallただし、すべてのジョブが終了した後、プロセスを手動で停止する必要もあります。

process.on('SIGTERM', function() {
    if(exit_cb) {
        exit_cb();
        process.exit();
    } else {
        console.log('About to exit.');
        process.exit();
    }
});  
于 2012-11-15T12:05:43.207 に答える