我们正在尝试终止使用nodes child_process
exec命令启动的chrome浏览器的进程
var process = cp.exec(`"chrome.exe" --app="..."`, () => {}); // working great
但当我们尝试
process.kill(); //nothing happens...
进程是否引用chrome窗口或其他内容?如果不是,我们如何获取新打开的chrome窗口进程、PID等?
任何帮助都很好...
注意-我们已经尝试使用chrome_launcher NPM,但它没有帮助,因为我们无法在kiosk模式下打开chrome,但这是一个不同的问题...
3条答案
按热度按时间chy5wohz1#
尝试PID黑客
我们可以使用
{detached: true}
选项启动子进程,这样这些进程就不会被附加到主进程,而是转到一组新的进程。然后在主进程上使用
process.kill(-pid)
方法,我们可以杀死所有在同一个pid组的子进程组中的进程,在我的例子中,我在这个组中只有一个进程。qfe3c7zg2#
我构建了一个跨平台的npm包,它包含了从节点生成和杀死子进程,给予看吧。
https://www.npmjs.com/package/subspawn
fhity93d3#
我无法补充评论,所以我直接在回答中说:
How to kill process with node js
如果您选中上面的链接,您需要如下库
https://www.npmjs.com/package/fkill
用法示例摘自stackoverflow问题
我还找到了这个库来检查正在运行的进程
https://github.com/neekey/ps