What is this Process and Why is it Running【二】

WmiPrvSE.exe

WMI 即 Windows Management Instrumentation(Windows 管理规范)的简写,是 Windows 操作系统的一项内置功能,它为软件和管理脚本提供了一种标准化方法,WMI Provider Host进程是Windows的重要组成部分,通常在后台运行,旨在帮助Windows PC上的其他应用来请求当前系统的各种信息,一般情况下,这个过程通常不会使用很多系统资源,但如果调用请求的应用、代码或脚本写得不好的话,则可能导致 WmiPrvSE.exe 占用很高的 CPU 资源。

对于集中管理Windows PC的企业或团体来说,WMI是一个特别有用的功能,IT Pro可以通过脚本请求信息并在管理控制台中以标准方式输出显示。即便在个人用户的家用电脑上,某些软件也会通过 WMI 接口来请求有关操作系统的信息。自己可以使用WMI来查找有用的信息,获取电脑的序列号,查看主板型号,或是硬盘的SMART运行状况等,运行WMI的工具-WMIC

长时间处于CPU高占状态

打开电脑的服务,点击关闭服务就行。对于这种情况一般是因为其调用其它WMI程序引起的,而非WMI Provider本身,所以可以使用 Eventvwr.msc 打开「事件查看器」,导航到「应用程序和服务日志」——「Microsoft」——「Windows」——「WMI-Activity」——「操作」,在错误日志的 ClientProcessId 字段中可以查看到引起问题的进程 PID。正常情况下这个进程是不允许禁止的,会影响到其他服务.

RuntimeBroker

此进程是Windows8以上系统才会出现的进程,用来进行开始屏幕磁贴与桌面的后台交互,如果没有运行任何磁贴程序应用的话,可能不会出现在进程中.

同样的,当系统出现该进程占用内存太高,应该是磁贴应用没有彻底关闭.

重复出现和CPU大量占用

对于此进程,如果出现占用CPU和磁盘非常大的情况,不能武断的关闭, 即使关闭了也会重新出现. 因为其作为系统的核心进程,是不能随便禁止的.而应该关掉照片里的自我增强和链接的重复文件.

SystemSettingsBroker.exe

进程 System Settings Broker 是附属于软件 Microsoft Windows Operating System 由 Microsoft (www.microsoft.com) 发行,SystemSettingsBroker.exe 对于Windows很重要.

软件开发商Microsoft提供直接支持
(www.microsoft.com/windows). 如果对于SystemSettingsBroker.exe有问题, 您可以通过控制面板来删除整个Microsoft Windows,或者检查是否有新版本可以更新.

伪装

有些病毒软件伪装成 SystemSettingsBroker.exe,可以利用工具Security Task Manager来检查计算机.

CompatTelRunner.exe

Microsoft Compatibility Telemetry(微软兼容性检测)是微软旗下的一个监测数据收集服务,如果加入Microsoft客户反馈改善计划,该服务就会在检测系统异常并收集反馈到微软。

网友大多数都建议将此服务禁止,我选择了设置为手动,即在启动之后不会再出现占用100%的情形,一旦需要可以直接手动改开启即可。如果想要直接禁止掉的,那么除了这个服务,还包括Diagnostic Policy Service ,Diagnostic Service Host两个服。

Likewise, if not disable, the file transfers the telemetry data, technical data about your operating system to micrisift. The app also restarts with each new windows log-in session despite the attempts to disable the task completely.

If you happen to be one of them and intend to terminate the application permanently…

【https://ugetfix.com/ask/how-to-disable-microsoft-compatibility-telemetry-compattelrunner-exe/】

ntoskrnl.exe Registry

Windows 10是一个大型操作系统,但它如何处理内存操作呢?这可以归功于ntoskrnl.exe内存处理程序。Ntoskrnl.exe(Windows NT操作系统内核的缩写)也称为内核映像,是一个系统应用程序文件,提供Windows NT内核空间的内核和执行层,负责各种系统服务【附加:内存管理的工作原理】,是系统的重要组成部分。

ntoskrnl.exe是一个受系统保护的文件,不会轻易被删除或损坏。但一旦损坏,ntoskrnl.exe将发生故障并且不知道什么时候写入RAM或什么时候释放RAM空间。这可能会导致堆积数据和内存页面,从而使CPU更难以管理此内存空间。您的硬盘驱动器可能会因同样的原因而填满。它管理内存,但经常会出现占用过大内存的状态,严重的情况通常是由硬件和恶意软件引起的内存泄漏引起的。

**小心在线分发的共享软件和免费软件**。
他们可能故意将自己嵌入到ntoskrnl.exe系统文件中,或者劫持此文件的功能导致内存泄漏。
它也可能会改变它们的可执行文件注册表。这意味着ntoskrnl.exe无法按预期继续工作。
由于恶意软件旨在损害您的计算机,因此它允许将数据流式传输到RAM中,但不允许任何其他内容。
该病毒也可能正在积极写入ntoskrnl.exe拥有的内存空间。
这会填满你的内存并导致大量的CPU使用。保存到HDD的页面可能会填满您的存储空间。

参考:https://appuals.com/high-cpu-or-disk-usage-by-ntoskrnl-exe-on-windows-10/

dllhost.exe

是操作系统的一部分,运行COM+的组件,用于管理DLL应用,运行web和http服务器必须建基于它。

关于dllhost.exe的误区
  1. 是病毒文件的存在,好多网上的资料直接指定其为病毒文件,然年后提供删除操作,实际上,这是系统的组成部分,不一定是病毒;
  2. 此进程不是没用的,有好多程序运行都需要此进程的存在。

判断dllhost.exe文件是不是病毒文件的方法:
看位置,一般情况下会出现在system32中dllcache文件下,如果右键找到详细位置发现在其他位置,则有可能是病毒。

mDNSResponder.exe

mDNSResponder.exe是Apple出品的Bonjour一个组件,在任务进程中以Bonjour Service显示,mDNSResponder(Bonjour Multicast Domain Name System Responder)。当用户安装某些软件(例如:iTunes,Adobe Creative Suite CS3),这个程序就被一起安装。它可以查找本地网络的计算机和打印机。

这个文件不知Windows的核心文件,可以这么说,这个文件不被Windows需要

有些病毒软件伪装成 mDNSResponder.exe, 尤其是处于windows 或system32目录下 . 因此,需要检查计算机中的mDNSResponder.exe进程,确保它不是病毒. 推荐使用Security Task Manager来确保您的计算机安全.

此文件威胁程度排序(从大到小):

C:\Program Files\Common Files  >  C:\Program Files  > C:\Users\username

sedsvc.exe

sedsc.exe对于Windows操作系统不是必须的,并且导致相对较少的问题,存放在C盘下,有十多种变体,在PC上作为sedsvc服务运行,该服务可以修复Windows Update组件,该程序不可见,不是Windows系统文件,且该文件具有数字签名,安全性较差。

检查

该文件有可能时病毒伪装而成,尤其是当其存在于Windows或者system32文件目录下的时候,可以通过检查进程中的sedsvc.exe进程是否异常,或者下载Security Task Manager工具进行检查。

To help you analyze the sedsvc.exe process on your computer, the following programs have proven to be helpful: ASecurity Task Manager displays all running Windows tasks, including embedded hidden processes, such as keyboard and browser monitoring or Autostart entries. A unique security risk rating indicates the likelihood of the process being potential spyware, malware or a Trojan. BMalwarebytes Anti-Malware detects and removes sleeping spyware, adware, Trojans, keyloggers, malware and trackers from your hard drive.【来自https://www.file.net/process/sedsvc.exe.html】

nidmsrv.exe

此应用程序是国家仪器公司的一个后台进程,提供了一种专门为NI共享变量建立域服务器的方法。在运行过程中通过端口连接LAN和INTERNET,如果停止或禁用此服务,则在配置共享变量安全性时,此计算机将无法充当域。同样的也不是Windows操作系统必须的,在PC中以NIDomain Service运行。同样的该程序没有可见的窗口,可以像应用一样直接在控制面板中删除。

检查

同样的,对于此进程,也是数字签名的,判断方法同上。

nidmsrv.exe

National Instruments Domain Service

lkcitdl.exe

Lookout Citadel Server

nisvcloc.exe

NI Service Locator

lktsrv.exe

National Instruments Time Synchronization

lkads.exe

National Instruments PSP Server Locator

以上五项是National Instruments安装后,在系统启动后多出的5个进程,涉及到五项服务,应改为手动并关闭【在我的电脑右键属性中,找到服务,将此五项服务的服务改为手动】

附加:
1.内存管理的工作原理:任务将与将执行此任务的程序一起加载到内存(RAM)中。这是获取部分。CPU对其进行解码,执行任务并将结果记录到内存中,然后由加载的程序将其记录到磁盘中。执行部分可以访问多个设备,包括GPU,CPU,磁盘空间(ROM或HDD,SSD等),网络设备和更多设备,具体取决于正在执行的任务。当程序关闭时,它将从内存(RAM)中及其正在处理的数据中卸载。现在可以释放空间以供其他任务使用。

PS D:\face\r\android> yarn example android info A dev server is already running for this project on port 8082. info Installing the app... > Configure project :react-native-nitro-inspire-faceplugin:compileKotlin [NitroModules] ? nitroinspireface is boosted by nitro! > Configure project :react-native-nitro-modules [NitroModules] ? Your app is boosted by nitro modules! [Incubating] Problems report is available at: file:///D:/face/r/example/android/build/reports/problems/problems-report.html Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. For more on this, please refer to https://docs.gradle.org/8.12/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. 10 actionable tasks: 10 executed info 💡 Tip: Make sure that you have set up your development environment correctly, by running npx react-native doctor. To read more about doctor command visit: https://github.com/react-native-community/cli/blob/main/packages/cli-doctor/README.md#doctor FAILURE: Build failed with an exception. * Where: Build file 'D:\face\r\example\node_modules\react-native-reanimated\android\build.gradle' line: 53 * What went wrong: A problem occurred evaluating project ':react-native-reanimated'. > Process 'command 'node'' finished with non-zero exit value 1 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. BUILD FAILED in 1m 7s error Failed to install the app. Command failed with exit code 1: gradlew.bat app:installDebug -PreactNativeDevServerPort=8082 FAILURE: Build failed with an exception. * Where: Build file 'D:\face\r\example\node_modules\react-native-reanimated\android\build.gradle' line: 53 * What went wrong: A problem occurred evaluating project ':react-native-reanimated'. > Process 'command 'node'' finished with non-zero exit value 1 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. BUILD FAILED in 1m 7s.
最新发布
07-31
<think>我们正在解决一个构建错误:在构建React Native项目时,react-native-reanimated模块的Android构建脚本(build.gradle)第53行执行node命令失败,返回非零退出值1。 根据经验,这类错误通常由以下原因引起: 1. Node.js版本不兼容 2. 项目依赖缺失或损坏 3. 环境变量配置问题 4. 特定模块的脚本执行失败(如postinstall脚本) 由于错误指向react-native-reanimated的build.gradle文件第53行,我们需要先查看该行代码。通常,在react-native-reanimated的构建脚本中,第53行附近可能是在执行一个node脚本来生成一些代码(例如生成可动画化的组件)。 在react-native-reanimated的android/build.gradle文件中,我们可能会看到类似这样的代码: ```groovy task createNativeDepsDirectories { // 创建目录 } task generateCode { // ... 准备参数 commandLine "node", "path/to/script.js" } ``` 具体到第53行,可能是执行node命令的地方。 因此,我们需要: 1. 确认Node.js版本符合要求(建议使用LTS版本) 2. 检查node命令是否在PATH中 3. 尝试重新安装依赖(特别是react-native-reanimated) 4. 查看具体的错误输出,定位node脚本执行失败的原因 步骤: 1. 检查Node.js版本: ```bash node -v ``` 确保版本在react-native-reanimated支持的范围内(通常>=12,但具体看文档)。 2. 尝试清除缓存并重新安装: ```bash watchman watch-del-all rm -rf node_modules yarn cache clean yarn install ``` 3. 如果问题仍然存在,尝试手动执行该node命令,查看具体错误。 首先,找到react-native-reanimated的android目录,然后找到build.gradle文件中第53行对应的命令。假设命令是: ```groovy commandLine "node", "generateCode.js" ``` 那么我们可以进入node_modules/react-native-reanimated/android目录,尝试运行: ```bash node generateCode.js ``` 这样可以看到具体的错误信息。 4. 常见错误: - 缺少依赖:如果生成脚本需要其他npm包,可能需要先安装。 - 权限问题:确保有权限执行脚本。 - 脚本语法错误:可能由于Node.js版本不兼容导致。 5. 如果手动执行成功,但Gradle构建时失败,可能是环境变量问题。在Gradle构建时,环境变量可能与终端不同。可以尝试在Gradle脚本中打印环境变量,或者检查Gradle使用的Node.js路径。 6. 在Gradle脚本中指定Node.js的绝对路径(如果环境变量有问题): ```groovy commandLine "/usr/local/bin/node", "generateCode.js" ``` 7. 如果使用nvm管理Node.js,可能需要在Gradle构建时加载nvm的环境变量。可以在构建前执行`nvm use`,或者在Gradle脚本中设置Node.js路径。 8. 在Windows上,注意路径分隔符和可执行文件扩展名(node.exe)。 由于错误信息中提到了非零退出值1,但没有具体错误,所以我们需要获取更详细的日志。 我们可以尝试在Gradle构建时添加`--stacktrace`或`--info`参数来获取更多信息: ```bash ./gradlew assembleDebug --stacktrace ``` 或者,我们可以修改react-native-reanimated的build.gradle文件,在命令执行失败时打印输出。例如,将原来的exec命令改为: ```groovy def result = exec { ... ignoreExitValue = true // 先忽略退出值,以便获取输出 } if (result.exitValue != 0) { println "Command failed with output: ${result.getOutputStream().toString()}" throw new GradleException("Command failed with exit code ${result.exitValue}") } ``` 但是,直接修改node_modules中的文件不是长久之计,我们可以考虑使用patch-package来打补丁。 另外,根据引用[1]中的内容,我们注意到一个NDK构建错误,但用户当前的问题是关于node命令失败,所以可能不直接相关。但需要确认是否同时存在NDK问题。 由于用户的问题描述中提到了“react-native-reanimated android build.gradle line 53 error”,我们应聚焦于此。 根据社区经验,react-native-reanimated在构建时执行node脚本生成代码,这个脚本可能因为各种原因失败。常见原因包括: - 项目路径中有空格或特殊字符(如中文),导致路径解析错误。 - 缺少必要的依赖,如`react-native-cli`或`@babel/core`等。 因此,我们可以尝试: - 确保项目路径是英文且没有空格。 - 在项目根目录运行`yarn add @babel/core`(如果缺失)。 最后,如果问题仍然无法解决,可以查看react-native-reanimated的issue列表,寻找类似问题。 由于我们无法直接运行用户的系统,以下提供通用解决方案: ### 解决方案步骤 1. **升级或降级Node.js**:使用nvm安装LTS版本的Node.js(如14.x或16.x),并确保使用该版本。 2. **重新安装依赖**: ```bash rm -rf node_modules yarn cache clean yarn install ``` 3. **检查项目路径**:确保项目路径中没有空格和特殊字符(尤其是中文字符),最好全英文。 4. **尝试手动执行生成脚本**: 进入`node_modules/react-native-reanimated/android`目录,找到`generateCode.js`(或其他类似名称的脚本),然后运行: ```bash node generateCode.js ``` 根据错误信息进一步解决。 5. **在Gradle中指定Node.js路径**(适用于Node.js不在PATH中或PATH未正确设置的情况): 修改`node_modules/react-native-reanimated/android/build.gradle`,将`commandLine "node", ...`改为绝对路径,例如: ```groovy commandLine "C:/Program Files/nodejs/node.exe", "generateCode.js" ``` (注意:Windows路径中的空格可能导致问题,所以如果路径有空格,可以使用8.3短路径格式或将node安装到无空格路径) 6. **使用patch-package**:如果修改了build.gradle,为了持久化,可以使用patch-package创建补丁。 7. **检查环境变量**:在Gradle构建时,可以通过在build.gradle中添加任务来打印环境变量: ```groovy task printEnv { doLast { println "PATH: " + System.getenv('PATH') } } ``` 运行`./gradlew printEnv`查看。 8. **更新react-native-reanimated**:如果当前版本有已知问题,尝试升级到最新版本。 9. **检查babel配置**:确保babel.config.js中包含了reanimated的插件: ```javascript module.exports = { presets: ['module:metro-react-native-babel-preset'], plugins: ['react-native-reanimated/plugin'], }; ``` 注意:reanimated的插件必须放在最后(参考官方文档)。 10. **清理构建缓存**: ```bash cd android ./gradlew clean ``` 11. **如果使用Hermes**:确保启用Hermes时使用兼容的reanimated版本(reanimated@2.x支持Hermes)。 如果以上步骤仍然无法解决问题,请提供手动执行node脚本的具体错误信息。 ### 相关问题 1. 如何查看Gradle构建任务的详细日志? 2. 在Windows上如何设置Node.js的环境变量? 3. 如何使用patch-package为node_modules中的文件打补丁? 4. react-native-reanimated的babel插件为什么必须放在最后? 5. 如何解决Node.js版本与React Native项目不兼容的问题?</think>### 解决 `react-native-reanimated` Android 构建错误 (node 命令失败) 该错误发生在 `react-native-reanimated` 的 Android 构建脚本中(`build.gradle` 第 53 行),核心问题是 **Node.js 命令执行失败**(退出码 1)。以下是系统化的解决方案: #### 1️⃣ 检查 Node.js 环境问题 (最常见原因) ```bash # 验证 Node.js 版本兼容性 (推荐 v14-v18 LTS) node -v # 检查 npm/yarn 全局路径配置 npm config get prefix yarn global dir ``` - **不兼容版本**:React Native 通常需要 Node.js 14-18(LTS版本),升级/降级后重试[^1] - **路径问题**:若全局路径包含空格或特殊字符,使用 `npm config set prefix "C:\NewPath"` 修改 #### 2️⃣ 清除构建缓存 ```bash # 清除项目缓存 cd android && ./gradlew clean # 清除 React Native 缓存 npx react-native start --reset-cache # 删除 node_modules 重装依赖 rm -rf node_modules yarn install --force # 或 npm install ``` #### 3️⃣ 修复 NDK 配置 (关联引用[1]) 在 `android/gradle.properties` 添加: ```properties # 修复 NDK 模块依赖问题 android.useAndroidX=true android.enableJetifier=true APP_ALLOW_MISSING_DEPS=true # 允许缺失依赖 ``` #### 4️⃣ 手动执行失败命令 定位 `node_modules/react-native-reanimated/android/build.gradle` 第 53 行,手动执行类似命令: ```bash node ./path/to/script.js ``` - 观察具体错误信息(通常是语法错误或缺失依赖) - 常见于 `codegen` 脚本执行失败 #### 5️⃣ 修复 React Native 配置 在 `babel.config.js` 确保包含: ```javascript module.exports = { plugins: ['react-native-reanimated/plugin'], // 必须放在最后 }; ``` ```bash # 验证 Babel 配置 npx babel-check ``` #### 6️⃣ 平台特定修复 (Windows) ```powershell # 以管理员身份运行 PowerShell Set-ExecutionPolicy RemoteSigned -Scope CurrentUser # 修复文件权限 icacls node_modules /reset /T ``` ### 关键排查点 1. **Node.js 版本**:使用 `nvm use 16.14.0` 切换 LTS 版本[^1] 2. **NDK 兼容性**:Android NDK 需兼容 React Native 版本[^1] 3. **依赖冲突**:运行 `yarn why react-native-reanimated` 检查多版本 4. **Xcode/Android Studio**:更新构建工具至最新稳定版 > 执行完上述步骤后,尝试重建: > `npx react-native run-android --variant release` ### 相关问题 1. 如何解决 Android NDK 的 "Module depends on undefined modules: fbjni" 错误?[^1] 2. Node.js 版本与 React Native 的兼容性要求是什么? 3. 在 Windows 上如何修复 npm/yarn 的文件权限问题? 4. `react-native-reanimated` 的 Babel 插件为什么必须放在最后? 5. 如何查看 Gradle 构建失败的详细日志? [^1]: 参考 NDK 兼容性问题和构建脚本修复方案
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值