从本身重新启动一个节点进程

是否有可能从本身内部完全重新启动正在运行的单线程节点进程?

我想象一下服务器的步骤是这样的:

  • closures监听套接字
  • 通过child_process.forkchild_process.spawn将一个孩子child_process.spawn ,将process.argv交给孩子。
  • process.exit()父(不应该杀死孩子)
  • 子再次绑定侦听套接字

可以这样做还是我完全错了?

这是可能的,但通常人们只是使用现有的解决scheme来启动一个主进程和N个服务器进程。 然后,当一个服务器进程死亡或停止,它只是开始一个新的。 一个例子是pm2

也就是说,只要您使用.spawndetached: true参数,您的示例对我来说就是正确的