代码之家  ›  专栏  ›  技术社区  ›  user4893295

如何阻止pm2杀死分离的子进程

  •  5
  • user4893295  · 技术社区  · 7 年前

    pm2正在监视重新启动时杀死分离的子进程(即使用detached:true、stdio:ignore和child.unref()生成的子进程)。

    有没有办法告诉pm2不要在重启时杀死子进程树?

    3 回复  |  直到 7 年前
        1
  •  6
  •   user4893295    7 年前

    答案是将以下内容放在生态系统文件中(应用程序的主要部分,而不是手表设置下):

    "treekill": false
    
        2
  •  2
  •   Bill Effin Murray    7 年前

    我最终使用了

    pm2 restart myapp --no-treekill
    

    pm2 stop myapp --no-treekill
    
        3
  •  0
  •   Undead8    3 年前

    我使用pm2 API从内部重新启动nodejs应用程序。这是我使用的函数,以便不终止分离的子进程(请注意 treekill: false 选项)。

    function restartPm2() {
        pm2.connect(function(err) {
            if (err) {
                console.error("PM2 FAILED TO CONNECT:", err);
            } else {
                pm2.restart('myapp.js', { treekill: false }, function() {});            
            }
        });
    
        pm2.disconnect();
    }