问题描述
electron打包的exe上线后,由于开机自启动该项目,没有关掉进程的情况下开启多个exe导致任务管理器资源升高,电脑直接卡死的现象
解决思路
在dev-runner.js中找到了关于杀死进程的方法
1 2 3 4 5 6 7 8 9 10 | if (electronProcess && electronProcess.kill) { manualRestart = true process.kill(electronProcess.pid) electronProcess = null startElectron() setTimeout(() => { manualRestart = false }, 5000) } |
说明 它是直接通过调用process.kill来杀死进程,然后造成这个问题,遂进行了修改,修改后代码如下,注意引入exec,然后将延时器删除,感觉整个程序的运行速度都快了不少
1 2 3 4 5 6 7 8 9 10 11 | if (electronProcess && electronProcess.kill) { manualRestart = true const pid = electronProcess.pid const exec = require('child_process').exec; exec(`TASKKILL /F /IM electron.exe`, function (err, data) { if (err) console.log(err) else console.log( 'kill pid: ' + pid + ' success!' ) electronProcess = null startElectron() manualRestart = false }) } |