从本身重新启动一个节点进程
是否有可能从本身内部完全重新启动正在运行的单线程节点进程?
我想象一下服务器的步骤是这样的:
- closures监听套接字
- 通过
child_process.fork
或child_process.spawn
将一个孩子child_process.spawn
,将process.argv交给孩子。 - process.exit()父(不应该杀死孩子)
- 子再次绑定侦听套接字
可以这样做还是我完全错了?
这是可能的,但通常人们只是使用现有的解决scheme来启动一个主进程和N个服务器进程。 然后,当一个服务器进程死亡或停止,它只是开始一个新的。 一个例子是pm2
。
也就是说,只要您使用.spawn
的detached: true
参数,您的示例对我来说就是正确的