【问题标题】:Node.js child process shutdown delayNode.js 子进程关闭延迟
【发布时间】:2021-08-25 10:24:27
【问题描述】:

我有一个启动子进程(通过 spawn)的 node.js 进程。当主进程收到关闭请求(例如 SIGTERM)时,它必须在进程退出之前执行一些清理 - 这可能需要几秒钟。这种清理依赖于子进程继续运行 - 但是,子进程独立响应 SIGTERM 并关闭。

我可以在主进程准备好关闭子进程之前阻止子进程关闭吗?

谢谢, 尼尔

【问题讨论】:

标签: node.js process child-process kill sigterm


【解决方案1】:

在分离模式下生成子进程后,您可以单独处理它们。这对你有用:Node child processes: how to intercept signals like SIGINT

以下假设您的子进程已分离:

process.on('SIGINT', () => {
    console.log("Intercepted SIGINT on parent");
    // Do your magic here, if you just need to wait for X time, you can use a delay promise:

    delay(5000).then(() => {
        // Kill/handle your child processes here

        process.exit(0); // Then exit the main process
    });
});

function delay(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

【讨论】:

  • 谢谢 - “节点子进程:如何拦截像 SIGINT 这样的信号”的链接为我提供了解决问题所需的信息。
猜你喜欢
  • 2022-09-23
  • 1970-01-01
  • 2013-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-28
  • 2014-04-04
  • 2012-08-08
相关资源
最近更新 更多