Завершение процесса в порту, если выйти и перезапустить - PullRequest
0 голосов
/ 10 октября 2018

Я хочу убить процесс узла-красного, если он работает на моем порту 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' }

Как правильно решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...