在node-dev下检测应用程序重新启动

我正在开发使用Node-dev的Node.js应用程序。 每次保存应用程序的脚本(按下Control-S),node-dev都会重新启动我的应用程序。 现在的问题,我可以检测重新启动应用程序,以便我可以保存一些数据,在程序终止之前?

process.on('SIGINT', function() { console.log('SIGINT'); }); 

上面的代码没有检测到这种重新启动。

我正在使用Windows XP。

在你的孩子中,在processexit事件中添加一个监听器:

 process.on('exit', function() { // Save application state }); 

正如你从源头上看到的那样, node-dev分叉来启动你的脚本。 当一个文件改变时,父进程启动stop()函数 ,等待subprocess退出,然后重启:

 child.on('exit', start) stop() 

stop()函数发送一条消息:

 ipc.send({exit: true}, child) 

ipc对象使用child.send()方法 :

 if (dest.send) dest.send(m) 

node-dev通过发送一个SIGINT信号不起作用,但是使用IPC工作。 看来你可以通过在processmessage事件上添加一个监听器来检测应用程序的重新启动…但是这不起作用(即, message事件永远不会在process对象上发送)。 我的猜测是, process.exit()是同步的,我们的处理程序没有得到运行的机会。

编辑: 这里是一个以Node为代表的使用IPC的父/子通信的例子,如果有帮助的话。