![有没有办法通过 bash 暂停/睡眠?](https://linux22.com/image/1034155/%E6%9C%89%E6%B2%A1%E6%9C%89%E5%8A%9E%E6%B3%95%E9%80%9A%E8%BF%87%20bash%20%E6%9A%82%E5%81%9C%2F%E7%9D%A1%E7%9C%A0%EF%BC%9F.png)
我必须让九台 46 英寸 LCD 显示器(运行 Windows)在晚上 8 点挂起/休眠,并在每天早上 8 点唤醒。尝试让命令(包括权限)正常工作有点麻烦。由于我首先是 Ubuntu 用户,我想知道在 Ubuntu/Linux 中这是否容易。
我知道 cron 可以在晚上 8 点运行我的挂起/睡眠命令(挂起/睡眠命令到底是什么?),但如何在不使用网络唤醒或手动干预的情况下在早上 8 点唤醒机器呢?
答案1
挂起命令是pm-suspend
按 pm- 和一个选项卡来查看其他电源管理命令。我不认为会有自动唤醒系统的选项,因为操作系统本身没有运行。您可以让一个系统专门在特定时间唤醒其他系统。如果您不想挂起或休眠,而只是尽量减少资源使用,有办法降低硬盘转速或单独关闭显示器等。还有一个pm-powersave
命令。
答案2
只针对显示器?这个解决方案是否来自systembash.com对你有用吗?创建一个 BASH 脚本来使用 DPMS 功能:
#!/bin/bash
# /usr/local/bin/monitorControl.sh
#
export DISPLAY=:0.0
if [ $# -eq 0 ]; then
echo usage: $(basename $0) "on|off|status"
exit 1
fi
if [ $1 = "off" ]; then
echo -en "Turning monitor off..."
xset dpms force off
echo -en "done.\nCheck:"
xset -q|grep "Monitor is"
elif [ $1 = "on" ]; then
echo -en "Turning monitor on..."
xset dpms force on
echo -en "done.\nCheck:"
xset -q|grep "Monitor is"
elif [ $1 = "status" ]; then
xset -q|sed -ne 's/^[ ]*Monitor is //p'
else
echo usage: $(basename $0) "on|off|status"
fi
然后使用 cron entires 来调用它:
0 20 0 0 0 /usr/local/bin/monitorControl.sh off
0 8 0 0 0 /usr/local/bin/monitorControl.sh on
否则,如果不是仅仅是显示器,请查看/etc/acpi/sleep.sh
和/etc/acpi/hibernate.sh
。
答案3
我不认为会有自动唤醒系统的选项,因为操作系统本身并没有运行。
事实上,在挂起系统之前,您可以使用“rtcwake”命令使用系统内部硬件时钟设置唤醒时间或计时器:例如,在明天 8:00 唤醒计算机:
sudo rtcwake -t `date -d "tomorrow 08:00:00" +%s` -m no
然后您可以使用 pm-suspend 来暂停系统。