在node-dev下检测应用程序重新启动
我正在开发使用Node-dev的Node.js应用程序。 每次保存应用程序的脚本(按下Control-S),node-dev都会重新启动我的应用程序。 现在的问题,我可以检测重新启动应用程序,以便我可以保存一些数据,在程序终止之前?
process.on('SIGINT', function() { console.log('SIGINT'); });
上面的代码没有检测到这种重新启动。
我正在使用Windows XP。
在你的孩子中,在process
的exit
事件中添加一个监听器:
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工作。 看来你可以通过在process
的message
事件上添加一个监听器来检测应用程序的重新启动…但是这不起作用(即, message
事件永远不会在process
对象上发送)。 我的猜测是, process.exit()
是同步的,我们的处理程序没有得到运行的机会。
编辑: 这里是一个以Node为代表的使用IPC的父/子通信的例子,如果有帮助的话。