Como atualizar o script (para colocar em repouso em determinada cpu temp) para 16.04 [duplicate]

1

Este script funcionou no passado, depois foi atualizado para o 14.04.

#!/bin/bash

while true; do
   val=$(sensors | awk '/temp1/ {print }')
   max="+75.0"
   if [[ "$val" > "$max" ]]; then
       dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
   fi
   sleep 10
   clear
   sensors
done
exit 0

Em 16.04, dá um erro:

Error org.freedesktop.DBus.Error.UnknownMethod: No such method 'Suspend'

Pode ser atualizado para funcionar em 16.04?

    
por cipricus 24.01.2017 / 19:09

1 resposta

3

Eu decidi votar para fechar esta e atualizar radicalmente a outra questão , onde espero uma resposta.

Como o erro foi Error org.freedesktop.DBus.Error.UnknownMethod: No such method 'Suspend' , após o comentário feito por Nick Sillito sob esta questão com link para < Uma resposta href="https://askubuntu.com/a/780990/47206"> this, , modifiquei o script no que eu espero ser uma maneira bastante bárbara (eu sou CL-analfabeto) ; Eu simplesmente substituí esta parte inteira:

    dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend

com

    systemctl suspend

Como indicado no comentário feito por wjandreea : sleep 10 ou um valor semelhante não deve ser removido (como Eu fiz inicialmente); sem essa linha, o script modificado usará mais energia porque, em vez de ser executado a cada 10 segundos, será o mais rápido possível - mais de várias dezenas de vezes por segundo.

Neste ponto, o sistema adormece quando ultrapassa o nível definido na linha

max="+75.0"

Como eu quero um valor mais alto, 82, o script que eu uso é:

#!/bin/bash

while true; do
   val=$(sensors | awk '/temp1/ {print }')
   max="+82.0"
   if [[ "$val" > "$max" ]]; then
                        systemctl suspend

   fi
   sleep 10
   clear
   sensors
done
exit 0
    
por cipricus 24.01.2017 / 21:46