一次干掉n个同一个服务启动的进程

本文探讨了系统中服务启动次数异常增多的问题,通过分析发现是flume进程导致。提供了直接使用pkill命令或pgrep查找进程并用kill-9命令干掉的优化方法。

说明:今天发现系统中的一个服务启动了600多次,一下就蒙了。

进程为flume进程:如下

root     32685     1  0 15:20 ?        00:00:17 /usr/bin/java -Xmx20m -cp /usr/local/apache-flume-1.6.0-bin/conf:/usr/local/apache-flume-1.6.0-bin/lib/*:/lib/* -Djava.library.path= org.apache.flume.node.Application -f /usr/local/apache-flume-1.6.0-bin/conf/clientAgent.conf -n clientAgent

[root@dim3 usr]# ps -ef|grep flume|grep -v grep|cut -c 9-15|xargs kill -9


优化方法:

思路:直接使用pkill命令或直接使用pgrep 查找进程,然后用kill -9 命令干掉

pkill java


pgrep java|xargs kill -9

<think>好的,用户想禁用或移除高通骁龙平台上的原生thermal服务。首先,我需要了解thermal服务的作用。通常,thermal服务用于监控设备温度,防止过热,通过调整CPU频率或其他硬件参数来降温。禁用或移除可能会影响设备安全,导致过热甚至硬件损坏,所以必须谨慎处理。 接下来,用户可能有不同的使用场景。比如,他们可能在开发自定义的thermal解决方案,或者遇到thermal服务导致的性能问题。需要确定用户是否有足够的权限和知识,比如是否在Android系统层面进行修改,或者是否有内核源码的访问权限。 根据提供的引用内容,特别是引用[2]提到的cpufreq策略和per_cpu变量,这可能涉及到内核模块的配置。另外,引用[5]提到了ServiceParser和ActionParser,说明可能与Android的init进程或系统服务有关。 可能的禁用方法包括:修改内核配置,禁用相关的thermal驱动;或者修改init.rc文件,移除启动thermal服务的条目。如果是Android系统,可能需要重新编译系统镜像,或者使用root权限停止相关服务。 需要注意的是,直接移除内核驱动可能存在风险,导致系统不稳定。用户可能需要备份当前系统,逐步测试修改后的效果。此外,替换thermal引擎可能需要开发自定义的守护进程,这需要一定的编程能力。 还需要考虑是否有替代方案,比如调整thermal配置文件,而不是完全禁用服务。引用[4]提到测试条件时关闭各种传感器,可能用户在进行功耗测试,thermal服务干扰了结果,所以需要禁用。 最后,必须警告用户操作的风险,建议在充分测试的环境下进行,并确保有恢复方案。</think>### 禁用或移除高通骁平台原生thermal服务的方法 #### 一、理解系统架构与风险 1. **Thermal服务的作用**: 高通原生thermal服务通过动态调节CPU/GPU频率、充电策略等实现温度控制,属于硬件保护机制[^2][^4]。 禁用或移除可能导致设备过热、硬件损坏或系统不稳定。 2. **系统层级分析**: - **内核层**:通过`thermal-engine`守护进程和`msm_thermal`驱动实现 - **用户空间**:配置文件位于`/vendor/etc/thermal-engine.conf` - **系统服务**:可能通过`init.rc`或`vendor init脚本`启动[^5] #### 二、内核层禁用方法(需源码权限) ```makefile # 在内核配置中关闭thermal驱动 # 路径:arch/arm64/configs/<device_defconfig> CONFIG_THERMAL_TSENS=n CONFIG_THERMAL_QCOM_TSENS_V2=n CONFIG_QCOM_SPMI_TEMP_ALARM=n ``` #### 三、用户空间禁用方案 1. **禁用thermal-engine服务** ```bash # 修改/vendor/etc/init/hw/init.qcom.rc # 注释或删除以下内容 # service thermal-engine /vendor/bin/thermal-engine # class main # user root # group root # critical ``` 2. **修改SELinux策略(需root)** ```bash adb shell setenforce 0 stop thermal-engine ``` #### 四、替代方案(推荐) 1. **替换thermal配置** 修改`/vendor/etc/thermal-engine.conf`降低触发阈值: ```xml <Configuration> <Platform> <ThermalThresholds> <Shutdown> 80 </Shutdown> <!-- 原值通常为65-70 --> </ThermalThresholds> </Platform> </Configuration> ``` 2. **动态控制(需root权限)** ```bash # 实时监控thermal zones adb shell cat /sys/class/thermal/thermal_zone*/temp # 禁用特定thermal zone echo disabled > /sys/class/thermal/thermal_zone0/mode ``` #### 五、验证步骤 1. 使用`dmesg | grep -i thermal`检查内核日志 2. 通过`top -m 10 | grep thermal`确认进程状态 3. 压力测试时观察`/sys/class/power_supply/*/temp`温度变化[^4]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值