默认情况下,当您在Node.js父进程上调用process.exit()时,它会杀死它生成的子进程。如果这是正确的,那么防止这种情况发生的最佳方法是什么?
我猜测的一点,那就是尝试覆盖SIGTERM的默认行为,通过在子代码中执行此操作:
process.on('SIGTERM',function(msg){
console.log('SIGTERM...');
});
但这显然不会奏效,因为它只是增加了一个名义上的听众,而且不会覆盖任何行为。
答案 0 :(得分:1)
将options.detached
设置为true
,以使子流程成为新流程组和会话的领导者。
实施例
var child = spawn('prg', [], {
detached: true,
stdio: [ 'ignore', out, err ]
});