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/...


cpsysfs即使它有效,也不太適合與 write to ... 一起使用。您更有可能透過重定向或tee.

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

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

那就不需要後續的chownor 了chmod。這就是三個指令減為一個。


policy0您只需為、policy1policy2中的每一個執行一次該操作policy3。怎麼樣:

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

這是四次重複,直到一次調用tee- 它甚至會自動調整以適應不同的系統(我的系統有 8 個策略,而不是 4 個)。

再次重複此操作以energy_performance_preference取得您想要使用的值。


至於讓它出現在konsole…你需要它嗎?你不能把它當作 bash 腳本運行嗎?

也許如果您確實願意,您可以使用以下命令/快捷方式來啟動腳本:

konsole -e "${PATH_TO_SCRIPT}"

相關內容