Я хочу убить процесс узла-красного, если он работает на моем порту 1880, а затем перезапустить его.Я использую следующий код, используя дочерний процесс.exe для этого.Я дважды вызываю 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;
}
});
Это работает нормально, если я запускаю его, когда запущен узел-красный.Так он убивает сервер и перезагружается.Но если я запускаю это снова, это дает мне ошибку и завершает этот код.
{ 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' }
Как правильно решить эту проблему?