如何更新脚本(在给定的 CPU 温度下进入睡眠状态)16.04

如何更新脚本(在给定的 CPU 温度下进入睡眠状态)16.04

脚本过去有效,然后针对 14.04 进行了更新。

#!/bin/bash

while true; do
   val=$(sensors | awk '/temp1/ {print $2}')
   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

在 16.04 中会出现错误:

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

它可以更新以便在 16.04 中运行吗?

答案1

我决定投票关闭此问题并彻底更新另一个问题,我期待得到答案。


由于错误Error org.freedesktop.DBus.Error.UnknownMethod: No such method 'Suspend',在评论之后尼克西利托在这个问题下链接到答案是,我以一种我认为相当野蛮的方式修改了脚本(我自己是 CL 文盲);我只是简单地替换了整个部分:

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

    systemctl suspend

正如评论中指出的那样怀安德雷亚sleep 10或者不应删除类似的值(正如我最初所做的那样);如果没有该行,修改后的脚本将使用更多的电量,因为它不是每 10 秒运行一次,而是尽可能快地运行 - 每秒运行几十次。

此时,当超过设定的水平时,系统将进入睡眠状态

max="+75.0"

因为我想要一个更高的值,82,所以我使用的脚本是:

#!/bin/bash

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

   fi
   sleep 10
   clear
   sensors
done
exit 0

相关内容