- Version: v9.8.0
- Platform: Linux 64bit
- Subsystem: child_process
When calling child.disconnect() from a parent process (not in cluster mode), the child process object does not emit a close event after the exit event.
If however the child process itself calls process.disconnect() it works as expected.
Example:
// parent.jsconstchild_process=require('child_process');constchild=child_process.fork('./child.js',{stdio: ['pipe','pipe','pipe','ipc']});setTimeout(()=>{child.disconnect();},1000);child.on('exit',()=>{console.log('exit');});child.on('close',()=>{console.log('close');});child.stderr.pipe(process.stderr);child.stdout.pipe(process.stdout);// child.jsprocess.on('disconnect',()=>{console.log('cya');});Output:
Expected Output:
When calling
child.disconnect()from a parent process (not in cluster mode), the child process object does not emit acloseevent after theexitevent.If however the child process itself calls
process.disconnect()it works as expected.Example:
Output:
Expected Output: