A solução é atribuir um PID do job principal à variável e escrever um script que:
-
verifica se a temperatura é de 10 segundos. Algo como
temp=($(sensors | awk -F'[+.]' '{print $2}'))
cria uma tabela
temp
com duas temperaturas (acpitz e coretemp) na minha caixa, talvez seja necessário ajustá-la para a saída desensors
. -
se temp > $ TEMPMAX envia
kill -TSTP PID
para o trabalho (CTRL-Z, também conhecido como suspender)(( $temp[1] > 80 || $temp[2] > 80 )) && kill -TSTP $JOBPID
-
se temp < $ TEMPRUN envia
kill -CONT PID
para o trabalho (o mesmo que o comando bg)(( $temp[1] < 40 && $temp[2] < 40 )) && kill -CONT $JOBPID
Como o script será executado com muita frequência, talvez você queira obter uma temperatura da fonte, em vez do comando sensors
, para ganhar um pouco a velocidade. Em pode máquina isso funciona:
temp=($(cut -c 1-2 /sys/class/hwmon/hwmon0/temp1_input) $(cut -c 1-2 /sys/class/hwmon/hwmon1/device/temp2_input))
mas, novamente, você pode precisar ajustá-lo para suas necessidades.