有没有办法通过 bash 暂停/睡眠?

有没有办法通过 bash 暂停/睡眠?

我必须让九台 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 来暂停系统。

相关内容