最近在写这个 博客项目 的时候,因为内嵌了 waline.js
作为子进程,所以有时候需要停止子进程并重启(传递给子进程新的配置)
但正常通过 childprocess.exit()
时,发现并没有完全退出,重启会报错 端口被占用
这是因为子进程往往还会产生出子进程,无法被 kill()
掉。
在使用 spawn
时,增加 detached: true
参数,让子进程在一开始就和父进程分离。然后在需要结束的地方:
jschildprocess = spawn('node something.js',[],{detached: true})
jschildprocess.unref();
# -号表示结束以pid为首的整个进程树
process.kill(-childprocess.pid)
本文作者:mereith
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!