proc.kill 的默认行为如何理解?
发布于 6 年前 作者 jiyinyiyong 4601 次浏览 来自 问答

文档上没有看到明确说, proc.kill 的默认行为怎么理解? 我遇到的是在工具当中通过 child_process 启动了子进程, 比如 webpack, 但是 webpack 运行的时候又有它的子进程… 结果我在 kill Webpack 的时候子进程就变成 orphan 了. 想知道 proc.kill 的默认行为是不是存在坑.

11 回复

咦,题叶你回归 Node 了?

你要在 child_process 里面做优雅退出:https://github.com/node-modules/graceful-process

@atian25 看 README 上写的是需要 Webpack 那边银润 graceful-process 才能很好地退出去? 我这边应该怎么搞?

在维护别的论坛…欢迎过来玩

你可以在自己的进程里面,去监听 SIG EVENT,然后 kill 掉子进程

也就是说需要自己筛选子进程出来了…

@jiyinyiyong 你 fork 的时候就有它的引用了。

喔,你说 Webpack 的子进程?这个应该是 Webpack 自己处理好的。

@atian25 算是粗暴的办法了. 有简单直接的办法还是直接用简单的. 我想试一下模拟 Ctrl c 够不够用. 按说 webpack 自己默认处理过的. 我之前担心的时候 proc.kill 做了什么, 破坏了 webpack 内部的行为.

没做什么,就是发了一个系统的 kill pid 指令,如果他那边没有正常回收资源退出,说明有 bug,是不是某个插件的质量不行?

@atian25 你要明确回复别人才能收到通知,要at出来 @jiyinyiyong

@alsotang 啊,主题发起人不会默认收?

@atian25 主题发起人会的。我没注意到主题也是题叶发的。。。

回到顶部