如何使用Node.js关闭通过child_process启动的Chrome浏览器
Node.js 关闭已启动Chrome浏览器的实现方法
Windows 平台基础实现(和你原有启动逻辑匹配)
你可以使用系统自带的taskkill命令终止所有Chrome进程,对应代码如下:
let cp = require("child_process"); console.log("Closing Chrome"); cp.execSync("taskkill /f /im chrome.exe"); console.log("Chrome closed successfully");
命令参数说明:
/f代表强制终止进程,避免Chrome弹窗拦截关闭操作/im代表指定进程的镜像名称,chrome.exe是Chrome浏览器的进程名
跨平台兼容实现
如果需要适配macOS、Linux系统,可以通过判断运行环境执行对应终止命令:
let cp = require("child_process"); const platform = process.platform; console.log("Closing Chrome..."); try { if (platform === "win32") { cp.execSync("taskkill /f /im chrome.exe"); } else if (platform === "darwin") { // macOS系统 cp.execSync('pkill -a -i "Google Chrome"'); } else if (platform === "linux") { // Linux系统 cp.execSync("pkill chrome"); } console.log("Chrome closed successfully"); } catch (err) { console.log("未找到运行中的Chrome进程或关闭失败:", err.message); }
进阶:仅关闭代码启动的Chrome实例
上述方法会关闭所有正在运行的Chrome窗口,包括用户手动打开的内容。如果需要仅关闭你代码启动的Chrome实例,建议启动时就保留进程对象,后续直接终止对应进程即可:
let cp = require("child_process"); // 启动Chrome时保留进程实例,不要用start命令,避免进程脱离控制 const chromeProcess = cp.spawn("chrome", [], { detached: true, shell: process.platform === "win32" }); // 需要关闭时直接调用kill方法 chromeProcess.kill(); console.log("指定Chrome实例已关闭");
注意事项
- 全局关闭所有Chrome的操作会清空所有未保存的浏览器数据,包括未提交的表单、未完成的下载任务,谨慎使用。
- 使用
start chrome命令启动的Chrome会脱离当前Node.js进程的控制,无法单独跟踪关闭,只能通过全局进程名匹配的方式终止。
内容的提问来源于stack exchange,提问作者Ritik Kumar
相关产品推荐
相关产品推荐

