父进程被终止时,Nodejs分离的subprocess被终止

我在Linux上,我使用节点进程来产生一个运行bash脚本的subprocess。 bash脚本进行远程升级。 进行dist-upgrade杀死节点,杀死父进程,而且杀死自己的升级。

根据nodejs文档,如果父进程退出,subprocess可以继续运行,如果subprocess已经产生detached标志。

如果我运行这个代码:

 const child_process = require("child_process"); child_process.spawn('xterm', [], { detached: true, stdio: ['ignore','ignore','ignore'] }).unref(); 

当我在webstorm中杀死父进程,subprocess(xterm窗口)也退出…当我杀死父母使用kill -9/15/...subprocess继续运行。 所以看起来有些方法如果分离,仍然可以杀死subprocess。 但是我不知道究竟什么时候,为什么以及如何避免呢?