【发布时间】:2019-10-25 14:15:51
【问题描述】:
我正在寻找一种方法来杀死在我的父进程死亡时产生的所有子进程(包括通过接收 SIGKILL)。
PM2 进程管理器似乎拥有密钥,因为向 pm2 守护进程发送 SIGKILL 会导致所有子进程退出(在 Linux 平台上)。
那么你知道 PM2 是如何做到这一点的吗?我怎样才能重现这种行为?
谢谢!
【问题讨论】:
标签: node.js process signals sigkill
我正在寻找一种方法来杀死在我的父进程死亡时产生的所有子进程(包括通过接收 SIGKILL)。
PM2 进程管理器似乎拥有密钥,因为向 pm2 守护进程发送 SIGKILL 会导致所有子进程退出(在 Linux 平台上)。
那么你知道 PM2 是如何做到这一点的吗?我怎样才能重现这种行为?
谢谢!
【问题讨论】:
标签: node.js process signals sigkill
'use strict'
const { fork } = require('child_process')
// fork a child process
const child = fork('new_process.js')
// when the main process exits, send the kill signal to the child process
process.on('exit', (code) => {
console.log(`About to exit with code: ${code}`)
child.kill(9)
})
有用的文档
【讨论】:
process.on('SIGKILL', () => { child.kill(); process.exit(); })