Script BASH de escalonamento de frequência da CPU

Script BASH de escalonamento de frequência da CPU

Eu escrevi um script para ser executado quando meu PC for inicializado e ele deve substituir "energy_performance_preference" e "scaling_governor" por outros que tenham valores diferentes.

O que está acontecendo é que apenas o primeiro comando está sendo executado por algum motivo. Eu tenho um script semelhante para outra coisa que usa o mesmo processo de abertura do konsole e execução de vários comandos em sucessão como root.

Aqui está meu roteiro até agoraCPU_Boost.

VerEscala de frequência da CPUPara maiores informações.

Responder1

apenas o primeiro comando está sendo executado por algum motivo

Isso ocorre porque você tem o seguinte:

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; [...]

O Bash dividirá os comandos por ponto e vírgula (não por nova linha), então o que está sendo executado é mais parecido com o abaixo (mostrado com um comando por linha):

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
[...]

Você também tem sorte que konsole"irá capturar todos os seguintes argumentos passados ​​para o Konsole" [referência] - a maioria dos comandos não fará isso, em vez disso, tomará sudocomo parâmetro -ee tentará manipular cp, -f, /home/austin/...como outros argumentos de linha de comando.


cpnão é realmente apropriado para escrever em sysfs... mesmo que funcione. Você teria mais chances de ter sucesso com o redirecionamento ou tee.

Por exemplo, se o seu scaling_governorarquivo contiver o texto performance, você poderá fazer o seguinte:

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

Então não haveria necessidade do chownou subsequente chmod. São três comandos reduzidos a um.


Você está fazendo isso uma vez para cada um de policy0, e . Que tal o seguinte:policy1policy2policy3

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

São quatro repetições em uma chamada tee- e até se ajustam automaticamente a diferentes sistemas (meu sistema tem 8 políticas, não 4).

Repita isso novamente para energy_performance_preferenceo valor que você gostaria de usar.


Quanto a fazer com que apareça em konsole... você precisa disso? Você não pode simplesmente executá-lo como um script bash?

Talvez se você realmente quiser, você pode usar o seguinte como comando/atalho para iniciar o script:

konsole -e "${PATH_TO_SCRIPT}"

informação relacionada