我正在Electron主进程中启动后台进程(在Windows上),类似于以下方式:
app_exe = require("child_process").spawn(
"app.exe" ,
[ "--params", ... ],
{ stdio: "ignore" }
);
这个能正常工作,我可以从进程管理器中看到:
但是当 Electron 关闭(.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
,但是这样我就无法运行两个实例的 Electron 应用程序。
我在 Windows 上的进程管理方面是否忽略了一些显而易见的东西?
process.kill(PID)
即可。 - ChesuCR