web-dev-qa-db-fra.com

RTCWake ne réveille pas Ubuntu Server

Bonne après-midi,

Je suis passé d'un serveur Windows à un serveur Ubuntu et j'ai réussi à répliquer tous les éléments que j'avais sur l'ancien serveur, à l'exception du mode veille.

Actuellement, Ubuntu Server 16.04.2 LTS est installé et je ne parviens tout simplement pas à le réveiller avec un script crontab.

en utilisant:

Sudo rtcwake -u -s 120 - mem

laisse l'ordinateur dormir pendant 2 minutes, donc je sais que le système est capable de dormir et de se réveiller, mais il est difficile pour moi de transférer cela dans un script car il est tout nouveau et ma connaissance d'Ubuntu/Linux est très limitée pour le moment. Alors, pourriez-vous vous donner 2 minutes pour regarder ce que j'ai fait jusqu'à présent, s'il vous plaît?.

Les commandes que j'ai exécutées jusqu'ici sont:

Sudo crontab -e

puis ajouté cette ligne à la fin pour tester la fonctionnalité:

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

Dans le fichier suspend_until se trouve:

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

Crédit à RedgeOnline

Puis: chmod +x suspend_until

Le serveur s'est mis en veille à 19h30 mais ne s'est jamais réveillé.

Toute aide très appréciée

Merci d'avance pour votre temps

Andy

1
madmiddle

Dans votre commande de test:

Sudo rtcwake -u -s 120 -m mem

le -u provoque que rtcwake suppose que l'horloge de votre ordinateur (dans le BIOS) est définie sur l'heure UTC. Cependant, lorsque vous testez une heure relative (120 secondes dans ce cas), l’heure à laquelle l’horloge est réglée n’a pas vraiment d'importance; cela fonctionne donc de toute façon.

Le script exécuté par cron utilise l'option -l, ce qui fait que rtcwake suppose que l'horloge de votre ordinateur est réglée sur l'heure locale.

Dans les deux cas, vous devez être cohérent dans l’option que vous utilisez et vérifier vos paramètres BIOS actuels. Pour tester rtcwake avec un temps absolu, utilisez l'option -t:

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

où j'ai supposé que l'horloge de votre ordinateur est réglée sur l'heure locale.

À votre santé

1
romed

Vous pouvez également suspendre et réactiver votre système à l'aide de systemd, comme décrit ci-après: Suspension et reprise planifiées avec systemd

Cependant, systemd n'est disponible dans Ubuntu que depuis la version 15.04.

À votre santé

0
romed