5

開発中に、NodeJS プロジェクトで間違いを犯します。間違えると、このようなエラー メッセージが表示されます。

events.js:85
      throw er; // Unhandled 'error' event
            ^
Error: listen EADDRINUSE
    at exports._errnoException (util.js:742:11)
    at Server._listen2 (net.js:1148:14)
    at listen (net.js:1170:10)
    at net.js:1253:9
    at dns.js:82:18
    at process._tickCallback (node.js:343:11)

問題ありません。プロセスをヒットctrl+Cして再起動しましたが、生成された子プロセスがまだアクティブであることがわかります。root プロセスによって生成されたすべてのプロセスを強制終了するにはどうすればよいですか?

サンプルコード:

module.exports.start = function(options) {
  gulp.watch(['*.js'], onServerRestart);
  onServerRestart();

  var server;
  function onServerRestart(e) {
    if (server) server.kill();
    server = require('child_process').spawn("node", ['--harmony', './server.js'], {stdio: "inherit", cwd: process.cwd() });
  };
};
4

2 に答える 2