Nodes 如何关闭fork子进程

Nodes 如何关闭fork子进程,nodes,Nodes,我是nodejs新手,我创建了两个进程,从第一个进程开始,我使用fork运行第二个进程 var fork = require('child_process').fork; var productionApp = fork("../secondProcess"); 当我第一次运行第一个进程时,第二个进程也会启动 现在的问题是,当我尝试重新启动或停止并启动第一个进程时,会出现以下错误: { [Error: listen EADDRINUSE :::9000] code: 'EADDRINUSE',

我是nodejs新手,我创建了两个进程,从第一个进程开始,我使用fork运行第二个进程

var fork = require('child_process').fork;
var productionApp = fork("../secondProcess");
当我第一次运行第一个进程时,第二个进程也会启动

现在的问题是,当我尝试重新启动或停止并启动第一个进程时,会出现以下错误:

{ [Error: listen EADDRINUSE :::9000]
code: 'EADDRINUSE',
errno: 'EADDRINUSE',
syscall: 'listen',
address: '::',
port: 9000 }
此处端口9000位于
第二进程中。
当我停止第一个进程时,第二个进程并没有停止


所以我只想知道当父进程停止时如何停止子进程。

您需要遵循一些原则

错误很明显,您的子进程仍在使用该端口,您无法启动新套接字来侦听同一端口

如何解决/避免这种情况

  • 您的子进程通常不应比父进程寿命长。只有当你的目标是

  • 启动/停止时,您应该创建(进程ID),并且只允许执行单个实例。当您停止父进程时,子进程也应该停止,当您重新启动父进程时,它应该警告仍在运行的子进程