杀死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。