Javascript 从节点进程本身重新启动节点进程
是否可以完全从其内部重新启动正在运行的单线程节点进程 我认为服务器应该采取如下步骤:Javascript 从节点进程本身重新启动节点进程,javascript,node.js,process,fork,Javascript,Node.js,Process,Fork,是否可以完全从其内部重新启动正在运行的单线程节点进程 我认为服务器应该采取如下步骤: 关闭监听插座 通过child\u process.Fork或child\u process.spawn,将process.argv移交给子进程,派生出子进程 父进程上的process.exit()(不应终止子进程) 孩子再次绑定监听套接字 这是可行的还是我完全错了?这是可能的,但通常人们只使用启动单个主进程和N个服务器进程的现有解决方案。然后,当服务器进程死亡或停止时,它只会启动一个新进程。一个例子是 也就
- 关闭监听插座
- 通过
或child\u process.Fork
,将process.argv移交给子进程,派生出子进程child\u process.spawn
- 父进程上的process.exit()(不应终止子进程)
- 孩子再次绑定监听套接字
这是可行的还是我完全错了?这是可能的,但通常人们只使用启动单个主进程和N个服务器进程的现有解决方案。然后,当服务器进程死亡或停止时,它只会启动一个新进程。一个例子是
也就是说,只要使用
的分离:true
参数.spawn
,您的示例对我来说是正确的!有一个小问题是被抛回终端思想。我想知道是否有可能避免这种与终端思想的分离。我在上面的要点中继承了stdin、stdout和stderr,但是子进程的某些方面使它失去了进程的forground属性。@silverwind我认为这不起作用,因为当父进程死亡时,stdio流将断开连接。使用父进程,不断重生的子进程应该可以工作,因为父进程永远不会关闭。是的,我想我会使用主进程来产生子进程。显然,从C到后台进程有很多重新连接的方法,但这些东西肯定不会暴露给节点。