You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用cpulimit限制进程CPU使用率,避免树莓派Debian系统过热

嘿,我太懂你这种困扰了——树莓派跑视频转码这类高负载任务时,CPU温度蹭蹭往上涨,尤其是想用cpulimit限制却发现它不直接支持bash命令,只认PID或者可执行文件,确实有点卡手。别慌,我给你几个实用的解决方案:

方法1:先启动任务再绑定cpulimit

先把你的转码命令后台运行,拿到它的进程ID(PID),再用cpulimit精准限制。举个例子:

# 后台启动转码任务,同时记录它的PID
ffmpeg -i input.mp4 output.mp4 &
PID=$!
# 限制该进程的CPU使用率为70%(数值可以根据你的散热情况调整)
cpulimit -p $PID -l 70

这里的$!是bash的特殊变量,专门用来获取上一个后台进程的PID,完美解决了找不到目标进程的问题。哪怕你的转码逻辑是一串复杂的bash脚本,也可以用这个思路:先后台跑脚本,拿PID再限制。

方法2:写个包装脚本一键整合

如果你想一步到位,不用手动处理PID,可以写个简单的bash脚本把命令和cpulimit绑在一起。比如创建一个limit_transcode.sh文件:

#!/bin/bash
# 启动传入的命令并后台运行
"$@" &
PID=$!
# 自动给这个进程加上CPU限制
cpulimit -p $PID -l 70
# 等待任务结束
wait $PID

然后给脚本加执行权限:

chmod +x limit_transcode.sh

使用的时候直接把你的转码命令当参数传进去就行:

./limit_transcode.sh ffmpeg -i input.mp4 output.mp4

这样脚本会自动帮你启动任务、绑定cpulimit,直到转码完成才退出,全程不用你操心。

方法3:直接限制可执行文件(适合固定工具)

如果你的转码用的是固定工具(比如ffmpeg),还可以让cpulimit直接监控这个可执行文件,只要它运行就自动限制CPU。比如:

# 后台启动cpulimit,监控ffmpeg并限制到70%CPU
cpulimit -e ffmpeg -l 70 &
# 正常运行你的转码命令
ffmpeg -i input.mp4 output.mp4
# 任务结束后杀掉cpulimit进程(避免它一直后台跑)
pkill cpulimit

这个方法的好处是不用管PID,但要注意:如果此时有其他ffmpeg进程在运行,也会被一起限制,所以适合只有你这一个转码任务的场景。

最后补个小建议:除了软件限制,给树莓派加个散热片或者小风扇,降温效果会更明显,和cpulimit配合起来能让CPU温度稳很多。

内容的提问来源于stack exchange,提问作者Johannes Lemonde

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:31:39