From 93d2b774e600465ad0cdb25da20b653f34e2da59 Mon Sep 17 00:00:00 2001 From: gaoshuaixing Date: Mon, 24 Feb 2025 16:43:26 +0800 Subject: [PATCH] [feat] [ee-core] kill children process --- ee-core/cross/crossProcess.js | 15 ++++++++++----- ee-core/package.json | 3 ++- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/ee-core/cross/crossProcess.js b/ee-core/cross/crossProcess.js index 74bd356..50ad9c5 100644 --- a/ee-core/cross/crossProcess.js +++ b/ee-core/cross/crossProcess.js @@ -10,6 +10,7 @@ const { getRandomString, getValueFromArgv } = require('../utils/helper'); const { is } = require('../utils'); const { parseArgv } = require('../utils/pargv'); const { app: electronApp } = require('electron'); +const tkill = require('tree-kill'); class CrossProcess { constructor(host, opt = {}) { @@ -116,11 +117,15 @@ class CrossProcess { * kill */ kill(timeout = 1000) { - this.child.kill('SIGINT'); - setTimeout(() => { - if (this.child.killed) return; - this.child.kill('SIGKILL'); - }, timeout) + tkill(this.pid, 'SIGINT', (err) => { + if (err) { + coreLogger.error(`[ee-core] [corss/process] kill cross-process, error: ${err}, pid:${this.pid}`); + tkill(this.pid, 'SIGKILL'); + } + setTimeout(() => { + this._exitElectron(); + }, timeout) + }) } getUrl() { diff --git a/ee-core/package.json b/ee-core/package.json index 8545b13..e0e20b7 100644 --- a/ee-core/package.json +++ b/ee-core/package.json @@ -1,6 +1,6 @@ { "name": "ee-core", - "version": "4.0.0", + "version": "4.0.1", "description": "ee core", "main": "index.js", "scripts": { @@ -33,6 +33,7 @@ "serialize-javascript": "^6.0.1", "socket.io": "^4.6.1", "socket.io-client": "^4.6.1", + "tree-kill": "^1.2.2", "urllib": "^2.38.0" }, "devDependencies": {