Есть ли способ приостановить / спать через bash?

Мне нужно, чтобы девять 46-дюймовых ЖК-мониторов (работающих под управлением Windows) зависали / спали в 8 часов вечера и просыпались в 8 часов утра каждое утро. Было немного беспорядочно пытаться заставить работать команды, включая привилегии. Так как я Ubuntu пользователь в первую очередь, мне интересно, насколько легко это будет в Ubuntu/Linux.

Я знаю, что cron сможет запустить мою команду приостановки / сна в 8 часов вечера (что вообще такое команда приостановки / сна?), Но как насчет пробуждения машины в 8 часов утра без использования Wake-on-Lan или ручного вмешательства?

3 ответа

Решение

Команда приостановить pm-suspendнажмите pm- и вкладку, чтобы увидеть другие команды управления питанием. Я не думаю, что будет возможность разбудить системы самостоятельно, поскольку сама ОС не работает. Вы можете иметь одну систему, предназначенную для пробуждения других систем в определенное время. Если вы не хотите приостанавливать или переводить в спящий режим, а просто минимизировать использование ресурсов, есть способы отключить жесткий диск или отключить только монитор и т. Д. pm-powersave команда тоже.

Просто для монитора? Это решение от 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,

Я не думаю, что будет возможность разбудить системы самостоятельно, поскольку сама ОС не работает.

На самом деле, перед тем, как вы приостановите работу системы, вы можете установить время или таймер пробуждения, используя внутренние аппаратные часы системы, используя команду "rtcwake": например, чтобы разбудить компьютер завтра в 8:00.:

sudo rtcwake -t `date -d "tomorrow 08:00:00" +%s` -m no

затем вы можете использовать pm-suspend для приостановки системы.

Другие вопросы по тегам