Можно ли использовать команду pmset bash с несколькими повторяющимися парами действий?

Например:

Проснись или включи в 13:00, спи в 17:00

а также

Пробуждение в 18:00, отключение в 20:00

Если нет, есть ли инструмент с открытым исходным кодом, который может сделать это? Есть ли другой инструмент, который может включить компьютер в определенное время, или это возможно только в pmset?

РЕДАКТИРОВАТЬ: Я ищу инструмент, который будет работать на всех UNIX-подобных системах в Bash.

1 ответ1

0

Вы можете использовать rtcwake и shutdown для этого.

rtcwake - это утилита для приостановки работы компьютера и его активации через определенный промежуток времени. Основное использование

rtcwake -m <mode> -s <seconds>

Например

rtcwake -m mem -s 60

приостановит работу компьютера и разбудит его через 60 секунд. Можно написать сценарии для последовательного вызова желаемых действий, например:

#!/bin/sh

# calculate seconds remaining until $1
seconds_until() {
    current_time=`date +%s`
    target_time=`date -d $1 +%s`
    seconds=`expr $target_time - $current_time`
    # wrap seconds
    [ $seconds -lt 0 ] && seconds=`perl -e "print $seconds+86400"`
    echo $seconds
}

# suspend and wake up at 13:00
rtcwake -m mem -s `seconds_until 13:00`

# wait until 17:00, suspend, and wake up at 18:00
sleep `seconds_until 17:00`
rtcwake -m mem -s `seconds_until 18:00`

# wait until 20:00 and shutdown
sleep `seconds_until 20:00`
shutdown -h now

Для использования rtcwake необходима привилегия root .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .