CPU 频率调整 BASH 脚本

CPU 频率调整 BASH 脚本

我编写了一个脚本,在我的电脑启动时运行,它应该用具有不同值的脚本覆盖“energy_performance_preference”和“scaling_governor”。

发生的事情是,出于某种原因,只有第一个命令正在运行。我有一个类似的脚本,用于其他东西,它使用相同的过程,即打开 konsole 并以 root 身份连续运行多个命令。

以下是我目前的脚本CPU 加速

CPU频率调整了解更多信息。

答案1

由于某种原因,只有第一个命令正在运行

这是因为您具有以下内容:

konsole -e sudo cp -f /home/austin/CPU_Boost/energy_performance_preference /sys/devices/system/cpu/cpufreq/policy0/; cp -f /home/austin/CPU_Boost/scaling_governor /sys/devices/system/cpu/cpufreq/policy0/; chown root:root /sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference; chmod 444 /sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference; [...]

Bash 将用分号(而不是换行符)分隔命令,因此运行的内容更像下面(每行显示一个命令):

konsole -e sudo cp -f /home/austin/CPU_Boost/energy_performance_preference /sys/devices/system/cpu/cpufreq/policy0/
cp -f /home/austin/CPU_Boost/scaling_governor /sys/devices/system/cpu/cpufreq/policy0/
chown root:root /sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference
chmod 444 /sys/devices/system/cpu/cpufreq/policy0/energy_performance_preference
[...]

你也很幸运konsole将捕获传递给 Konsole 的所有以下参数[參考] - 大多数命令不会这样做,而是将sudo其作为参数-e并尝试将cp-f/home/austin/...作为其他命令行参数来处理。


cp并不适合用于写入sysfs... 即使它有效。使用重定向或 更有可能成功tee

例如,如果您的scaling_governor文件包含文本performance,那么您可以执行以下操作:

echo "performance" | sudo tee /sys/devices/system/cpu/cpufreq/policy0/scaling_governor

那么就不需要后续的chownchmod。这样就将三个命令减少为一个。


policy0您要对、policy1和分别执行一次该操作policy2policy3那么下面这个怎么样:

sudo tee /sys/devices/system/cpu/cpufreq/policy*/scaling_governor <<<"performance"

这就是将四次重复减少到一次调用tee- 它甚至会自动调整不同的系统(我的系统有 8 个策略,而不是 4 个)。

再次重复该操作,得到energy_performance_preference您想要使用的值。


至于让它显示在konsole...你需要它吗?你不能把它作为 bash 脚本运行吗?

也许如果您真的愿意,您可以使用以下命令/快捷方式来启动脚本:

konsole -e "${PATH_TO_SCRIPT}"

相关内容