【问题标题】:Parent process automatically killing child_processes in Node.jsNode.js 中父进程自动杀死 child_processes
【发布时间】:2015-10-14 21:13:03
【问题描述】:

默认情况下,当您在 Node.js 父进程上调用 process.exit() 时,它似乎会杀死它产生的子进程。如果这是正确的,那么防止这种情况发生的最佳方法是什么?

我有一个猜测,但没有奏效,是尝试通过在子代码中执行此操作来覆盖 SIGTERM 的默认行为:

process.on('SIGTERM',function(msg){
    console.log('SIGTERM...');
});

但这显然行不通,因为它只是添加了一个名义上的侦听器,并没有覆盖任何行为。

【问题讨论】:

    标签: node.js child-process


    【解决方案1】:

    options.detached 设置为true 以使子进程成为新进程组和会话的领导者。

    例子

     var child = spawn('prg', [], {
       detached: true,
       stdio: [ 'ignore', out, err ]
     });
    

    【讨论】:

    • @AlexMills 当我尝试分叉时,默认情况下它是分离的,这意味着脚本在主线程上的 process.exit 之后仍然执行
    • 呵呵我有相反的经历,让我仔细检查一下
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-14
    • 1970-01-01
    相关资源
    最近更新 更多