节点进程结束后,Grunt(keep-alive)不会退出

时间:2015-03-30 13:08:31

标签: javascript node.js gruntjs

Running "express-keepalive" task
[::ffff:xx.xx.xx.xx] CONNECTED
Caught exception: Error: connect ETIMEDOUT
Error: connect ETIMEDOUT
    at exports._errnoException (util.js:746:11)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:983:19)

但即使在此之后,grunt进程仍在继续运行。我已将grunt serve:dist设置为作为一个新手工作运行但它将不会重生,直到grunt进程结束。我正在捕获所有进程错误并确保节点进程退出。

process.on('uncaughtException', function(err) {
      console.log('Caught exception: ' + err);
      console.log(err.stack);
      process.exit(1);
});

ps aux返回没有节点进程在运行。

1 个答案:

答案 0 :(得分:1)

来自uncaughtException上的节点文档:

  

请注意,uncaughtException是一种非常粗略的异常机制   处理

     

请勿使用它,请改用domains。如果您使用它,请重新启动   每次未处理的异常后应用程序!

     

不要将它用作相同的On Error Resume Next的node.js。一个   未处理的异常意味着您的应用程序 - 并通过扩展node.js   本身 - 处于未定义状态。盲目恢复意味着什么   可能会发生。

     

在升级时考虑恢复拔电源线   你的系统。十分之九没有任何事情发生 - 但是第十次   时间,你的系统破灭了。

     

你被警告了。