nodejs/node
View on GitHubchild_process: 'close' not emitted after .disconnect() in parent process
Open
#19,433 opened on Mar 18, 2018
child_processhelp wanted
Description
- 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.js
const child_process = require('child_process');
const child = 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.js
process.on('disconnect', () => {
console.log('cya');
});
Output:
cya
exit
Expected Output:
cya
exit
close