CNode

proc.kill 的默认行为如何理解?

问答
Jjiyinyiyong发布于7 年前最后回复7 年前11 回复6305 浏览0 收藏

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

查看回复

回复 (11)

A
atian25#1·7 年前

咦,题叶你回归 Node 了?

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

J
jiyinyiyong#2·7 年前

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

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

A
atian25#3·7 年前

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

J
jiyinyiyong#4·7 年前

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

A
atian25#5·7 年前
引用 jiyinyiyong也就是说需要自己筛选子进程出来了..

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

A
atian25#6·7 年前

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

J
jiyinyiyong#7·7 年前

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

A
atian25#8·7 年前

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

A
atian25#10·7 年前
A
alsotang#11·7 年前
引用 atian25@alsotang 啊,主题发起人不会默认收?

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

参与回复
登录后即可参与回复。登录