杀死NodeJSsubprocess

在开发过程中,我在我的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并重新启动过程,但我看到一些衍生的subprocess仍然活跃。 我怎样才能杀死根进程产生的所有进程?

示例代码:

 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() }); }; }; 

添加这个

  process.on('uncaughtException', function(err) { console.log(err); server.kill(); process.kill(); }); 

解决了这个问题。 任何build议如何处理这个在你的应用程序?

这意味着,尽pipe您可能认为您退出了所有服务器,但其中一台确实仍在运行,可能是您尝试访问的服务器。

因此请到您的terminal并键入以下内容:

 killall node 

这应该解决它。

BAM。