ken*_*enn 5 suspend temperature cpu 16.04
这是该问题的彻底更新版本。我必须更新这个,因为这个问题被标记为这个问题的重复,而这不再有有效的答案。
我是脚本和 linux 的新手,我的 comp 有时会变得太热,我想制作一个脚本来检测 temp1,如果它超过 65 C,它必须让它进入睡眠状态。我在比较脚本中的值时有困难,我无法正确定义数字,有人能解决吗?到目前为止,这是我的尝试
#!/bin/bash
max=65
val=$ sensors | grep '^temp1:' | sed -e 's/.*: \+\([+-][0-9.]\+\)°C.*$/0\1/'
while true; do
if [[ "$val" > "$max" ]]; then
sudo /etc/acpi/sleep.sh force
sleep 1
else
sleep 10
fi
clear
sensors
done
Run Code Online (Sandbox Code Playgroud)
以上得到了一个脚本的答案,根据评论在某个时候更新为在 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
Run Code Online (Sandbox Code Playgroud)
如链接问题所示,上述脚本在 16.04 中不起作用。
#!/bin/bash
while true; do
val=$(sensors | awk '/temp1/ {print $2}')
max="+75.0"
if [[ "$val" > "$max" ]]; then
systemctl suspend
fi
clear
sensors
done
exit 0
Run Code Online (Sandbox Code Playgroud)
但是当它完成工作时(系统在超过 75 度时进入睡眠状态),它需要比预期更多的 CPU 功率,并在运行至 10 摄氏度时将温度推高;这更有用,不运行时更冷却!
我不知道问题出在最初的 11.04 脚本还是最后一次更改上,但这需要 16.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
Run Code Online (Sandbox Code Playgroud)
对于 16.04(也在这里):
#!/bin/bash
while true; do
val=$(sensors | awk '/temp1/ {print $2}')
max="+75.0"
if [[ "$val" > "$max" ]]; then
systemctl suspend
fi
sleep 10
clear
sensors
done
exit 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2471 次 |
| 最近记录: |