我在Linux上使用节点进程来生成运行bash脚本的子进程。 bash脚本执行dist-upgrade。执行dist-upgrade杀死节点,该节点会终止父进程,但也会进行升级。
根据nodejs文档,如果父进程退出,子进程可以继续运行,如果子进程已使用detached
标志生成。
如果我运行此代码:
const child_process = require("child_process");
child_process.spawn('xterm', [], {
detached: true,
stdio: ['ignore','ignore','ignore']
}).unref();
当我在webstorm中杀死父进程时,子进程(xterm窗口)也退出...当我使用kill -9/15/...
杀死父进程时,子进程继续运行。因此,似乎某些方法仍然可以在分离时杀死子进程。但我不确切知道何时或为何以及如何避免它?