Escala de Frequência da CPU BASH Script

0

Eu escrevi um script para ser executado quando meu PC é inicializado e é suposto substituir "energy_performance_preference" e "scaling_governor" por outros com 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 abrir o Konsole e executar vários comandos em seqüência como root.

Aqui está meu script até agora CPU_Boost .

Veja escala de frequência da CPU para obter mais informações.

    
por Recompiler 09.10.2018 / 20:38

1 resposta

0

only the first command is being run for some reason

Isso 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 um ponto-e-vírgula (não pela nova linha), então o que está sendo executado é mais como 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 argumentos a seguir passados para o Konsole " [ ref ] - a maioria dos comandos não fará isso, em vez de usar sudo como o parâmetro para o -e e tentando manipular cp , -f , /home/austin/... como outros argumentos de linha de comando.

cp não é realmente apropriado para uso com gravação em sysfs ... mesmo que funcione. Você teria mais chances de ter sucesso com o redirecionamento ou tee .

Por exemplo, se o arquivo scaling_governor contiver o texto performance , você poderá fazer o seguinte:

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

Em seguida, não haveria necessidade da subsequente chown ou chmod . São três comandos para um.

Você está fazendo isso uma vez para cada policy0 , policy1 , policy2 e policy3 . Como sobre o seguinte:

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

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

Repita isso novamente para energy_performance_preference e o valor que você gostaria de usar.

Quanto a isso aparecer em konsole ... você precisa disso? Você não pode apenas executá-lo como um script bash?

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

konsole -e "${PATH_TO_SCRIPT}"
    
por 09.10.2018 / 21:28

Tags