环境: win10 => CMD => node main.js
main.js:
const { exec } = require('child_process')
const child = exec(一些 CMD:如 git 批处理 /执行其他 node 脚本,子进程回调)
global[child.pid] = child
setTimeout(()=> child.kill(), 1000)
问题:
某些情况下(如 git merge 存在冲突, 其他 node 脚本业务特定异常)
这些情况会执行 child.kill()
且发现 child 的 exit 事件会被触发
且发现 child 的 killed 是 true
但是,如 git 批处理依然会继续执行, node 脚本也未被中断退出
请问这该怎么处理
1
ysc3839 2021-01-12 16:17:12 +08:00 via Android
你是想实现把子进程的子进程也给结束掉吗?这种情况应该使用操作系统提供的相关机制,Windows 下是用 Job Object 。
|