RTCWake não ativa o Ubuntu Server

1

Boa tarde,

Eu mudei de um servidor Windows para o servidor Ubuntu e consegui replicar todos os itens que eu tinha no servidor antigo, com exceção do modo de suspensão.

Atualmente tenho o Ubuntu Server 16.04.2 LTS instalado e simplesmente não consigo acordá-lo usando um script crontab.

usando:

sudo rtcwake -u -s 120 - mem

faz o computador dormir por 2 minutos, então eu sei que o sistema é capaz de dormir e acordar, mas tentar transferi-lo para um script é difícil para mim, pois é tudo novo e meu conhecimento do Ubuntu / Linux é muito limitado o momento. então você poderia poupar 2 minutos só para olhar o que eu fiz até agora por favor.

Os comandos que tenho executado até agora são:

sudo crontab -e

adicionou esta linha no final para testar o recurso:

30 19 * * * /home/andy/suspend_until 19:45

No arquivo suspend_until está:

#!/bin/bash

# Auto suspend and wake-up script

# Argument check
if [ $# -lt 1 ]; then
    echo "Usage: suspend_until HH:MM"
    exit
fi

# Check whether specified time today or tomorrow
DESIRED=$(('date +%s -d "$1"'))
NOW=$(('date +%s'))
if [ $DESIRED -lt $NOW ]; then
    DESIRED=$(('date +%s -d "$1"' + 24*60*60))
fi

# Kill rtcwake if already running
sudo killall rtcwake

# Set RTC wakeup time
# N.B. change "mem" for the suspend option
# find this by "man rtcwake"
sudo rtcwake -l -m mem -t $DESIRED &

# feedback
echo "Suspending..."

# give rtcwake some time to make its stuff
sleep 2

# then suspend
# N.B. dont usually require this bit
#sudo pm-suspend

# Any commands you want to launch after wakeup can be placed here
# Remember: sudo may have expired by now

# Wake up with monitor enabled N.B. change "on" for "off" if 
# you want the monitor to be disabled on wake
xset dpms force on

# and a fresh console
clear
echo "Good morning!"

Agradecemos a RedgeOnline

Então: chmod +x suspend_until

O servidor entrou em modo de espera às 19:30, mas nunca acordou.

Qualquer ajuda muito apreciada

Obrigado antecipadamente pelo seu tempo

Andy

    
por madmiddle 03.07.2017 / 14:26

2 respostas

1

Em seu comando de teste:

sudo rtcwake -u -s 120 -m mem

o -u faz com que rtcwake assuma que o relógio do seu computador (no BIOS) está definido para a hora UTC. No entanto, quando você testa por um tempo relativo (120 segundos neste caso), não importa realmente a hora em que o relógio está configurado, então funciona de qualquer maneira.

O script que é executado pelo cron usa a opção -l , fazendo com que rtcwake assuma que o relógio do seu computador está configurado para a hora local.

Em ambos os casos, você deve ser consistente, em qual opção você usa e você deve verificar suas configurações reais da BIOS. Para testar rtcwake com um tempo absoluto, use a opção -t:

sudo rtcwake -m mem -l -t $(date +%s -d ‘today 19:45’)

onde assumi que o relógio do seu computador está definido para a hora local.

Felicidades

    
por romed 03.07.2017 / 17:20
0

Você também pode suspender e ativar seu sistema usando o systemd, conforme descrito aqui: Agendado, suspender e retomar com o systemd

No entanto, o systemd só está disponível no Ubuntu desde a versão 15.04.

Felicidades

    
por romed 05.07.2017 / 11:22