【发布时间】:2017-06-27 17:28:02
【问题描述】:
我正在从电子主程序启动一个后台进程(在 Windows 上),如下所示:
app_exe = require("child_process").spawn(
"app.exe" ,
[ "--params", ... ],
{ stdio: "ignore" }
);
但是当电子关闭时我无法终止进程(.on("closed") 或 on("window-all-closed"))
我尝试了child.kill([signal]),但也尝试了tree-kill 或taskkill,但没有结果:只有第一个进程(示例中的6036)被杀死,第二个进程(5760)仍然过时。
也 exec taskkill /F /T /PID 不会杀死它。
杀死的唯一方法是 exec taskkill /F /IM app.exe /T,但这样我无法运行电子应用程序的两个实例。
我在 Windows 上的进程管理中遗漏了一些明显的东西?
【问题讨论】:
-
你能以某种方式获得子进程的 PID 吗?如果你能做到,你只需要打电话给
process.kill(PID) -
而不是 on('close') 你试过 on('will-quit') 吗?