Pmset vários pares de agendamento repetitivo

0

O comando pmset bash pode ser usado com mais de um par de ações repetidas?

Por exemplo:

Acorde ou ligue às 13:00, durma às 17:00

e

Wake at 18:00, Shutdown at 20:00

Se não, existe uma ferramenta de código aberto que possa realizar isso? Existe outra ferramenta que pode ligar um computador em um determinado momento ou isso só é possível em pmset?

EDIT: Estou procurando uma ferramenta que funcione em todos os sistemas semelhantes ao UNIX no bash.

    
por Blue Ice 19.03.2013 / 04:48

1 resposta

0

Você pode usar rtcwake e shutdown para fazer isso.

rtcwake é um utilitário para suspender o computador e ativá-lo após um determinado período de tempo. O uso básico é

rtcwake -m <mode> -s <seconds>

Por exemplo

rtcwake -m mem -s 60

suspenderá o computador para ser ativado e será ativado após 60 segundos. É possível escrever scripts para invocar as ações desejadas em sequência, por exemplo:

#!/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

O privilégio de raiz é necessário para usar rtcwake .

    
por 19.03.2013 / 08:39