function launchTarget(...args) { const childProc = spawn(process.execPath, args); return new Promise((resolve, reject) => { const onExit = () => { reject(new Error('Child process exits unexpectly')); }; childProc.on('exit', onExit); childProc.stderr.setEncoding('utf8'); childProc.stderr.on('data', (data) => { const ret = kDebuggerMsgReg.exec(data); childProc.removeListener('exit', onExit); if (ret) { resolve({ childProc, host: ret[1], port: ret[2], }); } }); }); }
child_process.removeListener('exit',cancelKill)
child.stdout.removeListener('data', checkOutput); child.removeListener('exit', onChildExit);