【electron-vue】进程无法杀死导致任务管理器资源飙升,电脑卡死的情况(改良版)

本文主要是介绍【electron-vue】进程无法杀死导致任务管理器资源飙升,电脑卡死的情况(改良版),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前景:同一个electron-vue项目,别人的电脑不会,而我编辑代码ctrl+s几下,后台8、9个进程,CPU 100%。

解决:(不想知道过程的,直接拉到最后,看最终修改的代码)

1、参考【Electron-Vue 】进程无法杀死导致任务管理器资源飙升,电脑卡死的情况。

作为elctron-vue菜鸟,配置一窍不通,好不容易搜到这个文章,复制拷贝,运行ctrl+s报错。

        exec(`TASKKILL /F /IM electron.exe`, function (err, data) {
        ^

ReferenceError: exec is not defined
    at Watching.compiler.watch [as handler] (E:\electronTest\loginnew\.electron-vue\dev-runner.js:103:9)
    at compiler.hooks.done.callAsync (E:\electronTest\loginnew\node_modules\webpack\lib\Watching.js:99:9)
    at AsyncSeriesHook.eval [as callAsync] (eval at create (E:\electronTest\loginnew\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:6:1)
    at Watching._done (E:\electronTest\loginnew\node_modules\webpack\lib\Watching.js:98:28)
    at compiler.emitRecords.err (E:\electronTest\loginnew\node_modules\webpack\lib\Watching.js:73:19)
    at Compiler.emitRecords (E:\electronTest\loginnew\node_modules\webpack\lib\Compiler.js:499:39)
    at compiler.emitAssets.err (E:\electronTest\loginnew\node_modules\webpack\lib\Watching.js:54:20)
    at hooks.afterEmit.callAsync.err (E:\electronTest\loginnew\node_modules\webpack\lib\Compiler.js:485:14)
    at AsyncSeriesHook.eval [as callAsync] (eval at create (E:\electronTest\loginnew\node_modules\tapable\lib\HookCodeFactory.js:33:10), <anonymous>:6:1)
    at asyncLib.forEachLimit.err (E:\electronTest\loginnew\node_modules\webpack\lib\Compiler.js:482:27)
    at E:\electronTest\loginnew\node_modules\neo-async\async.js:2818:7
    at done (E:\electronTest\loginnew\node_modules\neo-async\async.js:3522:9)

 

2、一看这报错不就是我刚拷贝上的代码么。

参考:nodeJS exec does not work for “cd ” shell cmd

原作者的文章里少了:

var exec =  require('child_process').exec;

 

3、但是!运行,ctrl+s,终端只有一句 kill pid: 27792 success! 

我要的效果是:运行,ctrl+s,干掉多余的进程,重新运行。对比代码修改,发现最初的代码有个延时

setTimeout(() => {manualRestart = false}, 5000)

 

4、dev-runner.js 修改代码

if (electronProcess && electronProcess.kill) {manualRestart = trueconst pid = electronProcess.pidvar 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 = nullstartElectron()setTimeout(() => {manualRestart = false}, 5000)})}

这篇关于【electron-vue】进程无法杀死导致任务管理器资源飙升,电脑卡死的情况(改良版)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/522855

相关文章

解决pandas无法读取csv文件数据的问题

《解决pandas无法读取csv文件数据的问题》本文讲述作者用Pandas读取CSV文件时因参数设置不当导致数据错位,通过调整delimiter和on_bad_lines参数最终解决问题,并强调正确参... 目录一、前言二、问题复现1. 问题2. 通过 on_bad_lines=‘warn’ 跳过异常数据3

电脑提示d3dx11_43.dll缺失怎么办? DLL文件丢失的多种修复教程

《电脑提示d3dx11_43.dll缺失怎么办?DLL文件丢失的多种修复教程》在使用电脑玩游戏或运行某些图形处理软件时,有时会遇到系统提示“d3dx11_43.dll缺失”的错误,下面我们就来分享超... 在计算机使用过程中,我们可能会遇到一些错误提示,其中之一就是缺失某个dll文件。其中,d3dx11_4

从入门到精通详解LangChain加载HTML内容的全攻略

《从入门到精通详解LangChain加载HTML内容的全攻略》这篇文章主要为大家详细介绍了如何用LangChain优雅地处理HTML内容,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录引言:当大语言模型遇见html一、HTML加载器为什么需要专门的HTML加载器核心加载器对比表二

WinForm跨线程访问UI及UI卡死的解决方案

《WinForm跨线程访问UI及UI卡死的解决方案》在WinForm开发过程中,跨线程访问UI控件和界面卡死是常见的技术难题,由于Windows窗体应用程序的UI控件默认只能在主线程(UI线程)上操作... 目录前言正文案例1:直接线程操作(无UI访问)案例2:BeginInvoke访问UI(错误用法)案例

一文解密Python进行监控进程的黑科技

《一文解密Python进行监控进程的黑科技》在计算机系统管理和应用性能优化中,监控进程的CPU、内存和IO使用率是非常重要的任务,下面我们就来讲讲如何Python写一个简单使用的监控进程的工具吧... 目录准备工作监控CPU使用率监控内存使用率监控IO使用率小工具代码整合在计算机系统管理和应用性能优化中,监

Linux进程CPU绑定优化与实践过程

《Linux进程CPU绑定优化与实践过程》Linux支持进程绑定至特定CPU核心,通过sched_setaffinity系统调用和taskset工具实现,优化缓存效率与上下文切换,提升多核计算性能,适... 目录1. 多核处理器及并行计算概念1.1 多核处理器架构概述1.2 并行计算的含义及重要性1.3 并

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

Javaee多线程之进程和线程之间的区别和联系(最新整理)

《Javaee多线程之进程和线程之间的区别和联系(最新整理)》进程是资源分配单位,线程是调度执行单位,共享资源更高效,创建线程五种方式:继承Thread、Runnable接口、匿名类、lambda,r... 目录进程和线程进程线程进程和线程的区别创建线程的五种写法继承Thread,重写run实现Runnab

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.