问题描述

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

 })

}

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐