如果要在我的1880端口上运行一个节点红色进程,我想终止它,然后重新启动它。我正在使用使用子进程process.exec的以下代码来执行此操作。我两次打电话给exec,第一个打电话给杀死1880年运行的服务器,第二个打电话给启动节点红色服务器。
exec('kill $(lsof -t -i:1880);', (e, stdout, stderr)=> {
if (e instanceof Error) {
console.error(e);
throw e;
}
});
exec('node-red', (e, stdout, stderr)=>
if (e instanceof Error) {
console.error(e);
throw e;
}
});
如果我在运行node-red时运行此程序,则运行良好。因此,它将杀死服务器并重新启动。但是,如果我再次运行它,这将给我一个错误并终止此代码。
{ Error: Command failed: node-red
Terminated
at ChildProcess.exithandler (child_process.js:275:12)
at emitTwo (events.js:126:13)
at ChildProcess.emit (events.js:214:7)
at maybeClose (internal/child_process.js:925:16)
at Process.ChildProcess._handle.onexit (internal/child_process.js:209:5) killed: false, code: 143, signal: null, cmd: 'node-red' }
我如何正确解决此问题?