CPU 주파수 스케일링 BASH 스크립트

CPU 주파수 스케일링 BASH 스크립트

내 PC가 시작될 때 실행할 스크립트를 작성했으며 "energy_performance_preference" 및 "scaling_governor"를 다른 값을 가진 것으로 덮어쓰도록 되어 있습니다.

무슨 일이 일어나고 있는지는 어떤 이유로 첫 번째 명령만 실행되고 있다는 것입니다. konsole을 열고 여러 명령을 루트로 연속적으로 실행하는 동일한 프로세스를 사용하는 다른 것에 대한 유사한 스크립트가 있습니다.

지금까지 내 스크립트는 다음과 같습니다.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작동하더라도 ... 에 쓰는 데는 실제로 적합하지 않습니다 . 리디렉션을 사용하면 성공할 가능성이 더 높습니다 tee.

예를 들어, scaling_governor파일에 텍스트가 포함되어 있으면 performance다음을 수행할 수 있습니다.

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

chown그러면 후속 or 가 필요하지 않습니다 chmod. 세 가지 명령이 하나로 합쳐졌습니다.


policy0, 및 각각에 대해 한 번씩 수행합니다 policy1. 다음은 어떻습니까?policy2policy3

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

이는 한 번의 호출로 4번 반복되며 tee다른 시스템에 맞게 자동으로 조정됩니다(제 시스템에는 4개가 아닌 8개의 정책이 있습니다).

energy_performance_preference사용하려는 값에 대해 다시 반복합니다 .


그것을 표시하는 것에 관해서는 konsole... 꼭 필요합니까? bash 스크립트로 실행할 수는 없나요?

아마도 정말로 원한다면 다음을 명령/바로가기로 사용하여 스크립트를 시작할 수 있습니다.

konsole -e "${PATH_TO_SCRIPT}"

관련 정보