#1 Le 04/07/2014, à 19:39
- K!rbY
[Non-résolu] Eteindre et rallumer automatiquement à une heure fixe
Bonsoir les ubunteros !
Je vous explique ce que j'aimerais faire :
-Eteindre (ou mettre en hibernation) mon ordinateur à 3h du matin, avec repousse de 30 minutes si quelqu'un est devant l'ordinateur.
-Rallumer ce même ordinateur à 8h du matin sans que je n'aie rien à faire.
J'ai essayé de passer par le BIOS avec l'auto wake up... mais ça n'a pas marché, pourtant j'ai l'option, je ne comprends pas !
J'ai essayé de voir avec zenity comment je pouvais faire pour la fenêtre, mais... je ne comprends pas comment on peut repousser le temps, et je n'ai pas vraiment le temps de bidouiller des trucs (je pars demain matin pendant 2 semaines et je dois laisser cet ordinateur allumé toute la journée car il me sert de mini-serveur de projet).
Après pour le cron, j'ai l'impression que c'est très simple MAIS, le plus dur dans tout ça c'est de rallumer l'ordinateur, c'est pour ça que je pense que s'orienter dans le mode hibernation, c'est mieux (j'avais cru croire que c'était possible et plus facile je ne sais plus trop où).
Quelqu'un pourrait-il me mener sur la piste et si possible me faire un script ? Après le mettre au démarrage de session ça je sais faire ! Et je l'ai fait pour mon mini-serv mais c'était des scripts très basiques qui demandaient d'écrire une commande de lancement (en gros) dans urxvt (et j'ai galéré d'ailleurs parce que urxvt -e sur mon script marchait pas)
Merci d'avance et bonne soirée !
Dernière modification par K!rbY (Le 05/07/2014, à 11:40)
Hors ligne
#2 Le 04/07/2014, à 20:10
- jacobus77
Re : [Non-résolu] Eteindre et rallumer automatiquement à une heure fixe
Tu as le tutorial mythtv qui est assez complet :
http://www.mythtv.org/wiki/ACPI_Wakeup
Hors ligne
#3 Le 05/07/2014, à 00:03
- K!rbY
Re : [Non-résolu] Eteindre et rallumer automatiquement à une heure fixe
Re,
Déjà, merci pour le lien, j'ai pu comprendre directement comment le rallumer et j'ai fait un test... MERVEILLE ça se rallume
Bon sinon pour l'hibernation automatique, j'ai trouvé exactement le script qui me permet de faire ce que je veux.
Pour ceux qui rêvent d'une automatisation de l'extinction et de l'allumage de leur PC, voici un guide !
Extinction automatique
Copier ce code dans un document texte, enregistrer le document et le nommer comme vous le voudrez, dans mon cas hibernate :
#!/bin/bash
##################################################################################
## Auteur: ljere ##
## Script pour éteindre le PC automatiquement ##
##################################################################################
# Sauvegarde des documents (pas fait)
while :; do
# Lancement de la commande avec grsync
# Demander si il faut bien éteindre
ans=$(zenity --question --timeout=60 --title "Extinction automatique du poste" --text "Le PC va s'éteindre brutalement dans 60 secondes." --ok-label "Eteindre maintenant" --cancel-label "J'attends la prochaine alerte dans 30 minutes.");
if [ $? = 5 ]; then
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
exit 1
fi
echo 'Utilisateur lance la boucle'
sleep 1800
done
Pour ceux qui cherchent à éteindre, ou mettre en veille vous devrez remplacer la ligne :
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
Par l'une des lignes suivantes selon votre cas :
Mise en veille :
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
Extinction :
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
Ensuite, placez votre script dans /usr/bin (pas obligé mais c'est ce que j'ai fait) et rendez le exécutable par tous :
sudo chmod 755 /usr/bin/hibernate
Editez le cron avec nano (à refaire sur chaque user) :
crontab -e
Et rajoutez la ligne suivante à la fin du cron :
0 2 * * * export DISPLAY=:0.0 && /usr/bin/hibernate
(oui j'execute le script à 2 h du matin tous les jours de chaque mois)
Voilà c'est fait, votre ordinateur hibernera (ou ce que vous voudrez) automatiquement à 2h du matin, avec confirmation d'être devant l'écran (ou pas si vous ne l'êtes pas). Pour changer cette heure, changez bien sûr le 2. Et pour changer les minutes, changez le 0.
---
Allumage automatique
Si votre ordinateur a été construit à partir de 2000, normalement c'est tout bon.
Dans un premier temps tapez ceci dans votre terminal préféré :
sudo grep -i rtc /var/log/dmesg
Si vous voyez ça par exemple, c'est tout bon :
RTC can wake from S4
Les spécifications ACPI définissent les "états globaux" suivants :
-G1 Le "sommeil" se divise en quatres états, de S1 à S4.
---S1: Le CPU arrête d'exécuter des instructions.
---S2: Le CPU est off.
---S3: Suspendre dans la RAM.
---S4: Suspendre dans le disque dur (hibernation).
-G2 (S5) Soft off A peu près la même chose que G3 mais peut s'activer par une touche de clavier ou autre.
-G3 Mechanical off
(Traduction approximative)
Donc si vous avez S4 (à ce que j'ai compris dans le tuto anglais), vous pouvez allumer à partir d'une hibernation. Bingo, c'est mon cas, et j'espère le votre.
Je vous renvoie d'ailleurs à la partie Extinction. Oui car imaginons vous ne pouvez pas allumer votre PC quand il est éteint mais quand il hiberne oui. ALORS, au lieu d'éteindre votre machine, faites la hiberner (en plus, 0 consommation d'énergie, ordinateur comme éteint mais relit juste les informations à la sortie de l'hibernation pour remettre les processus sur la RAM)
Bon, c'est bien beau le blabla, mais
Dans un second temps vous allez directement regarder dans votre BIOS la mise en place d'une alarme. Ça devrait s'appeler "Wake From Alarm", "Power-on by Alarm", "Wake from RTC", "RTC Resume", etc... et ça devrait être situé dans un sous-menu du genre "Power Management Setup," "APM," "ACPI," ou "Advanced".
Vous changez les valeurs avec les flèches haut et bas (n'oubliez pas le AM et le PM) jusqu'à arriver à ce qui vous plaît.
Aussi, pensez à changer l'heure de votre BIOS (j'ai du ajouter 2 heures personnellement), souvent c'est pas la même que l'heure actuelle.
Dans un troisième et dernier temps nous allons éditer le fichier "hwclock-save.conf" contenu dans /etc/init.
Donc tapez ceci dans votre console :
gksudo gedit /etc/init/hwclock-save.conf
Normalement, il doit déjà y avoir du texte dedans. Supprimez tout et remplacez par :
# hwclock-save - save system clock to hardware clock
# hwclock-save - save system clock to hardware clock
#
# This task saves the time from the system clock back to the hardware
# clock on shutdown.
description "save system clock to hardware clock"
start on runlevel [06]
task
script
. /etc/default/rcS
[ "$UTC" = "yes" ] && tz="--utc" || tz="--localtime"
[ "$BADYEAR" = "yes" ] && badyear="--badyear"
ACPITIME=`cat /proc/acpi/alarm`
exec hwclock --rtc=/dev/rtc0 --systohc $tz --noadjfile $badyear
echo "$ACPITIME" > /proc/acpi/alarm
end script
Enregistrez le fichier bien sûr.
Je n'ai pas bien compris pourquoi il fallait faire ça mais il semble que ça désactive les updates de hwclock, du coup, le BIOS garde son heure et pas de risques que l'alarme vous fourbe. (corrigez moi si je me trompe)
Et... c'est tout ! Du moins ça marche pour moi, j'espère que vous aussi !
Merci de la lecture et à bientôt !
Sources : http://www.mythtv.org/wiki/ACPI_Wakeup (Allumage)
http://forum.ubuntu-fr.org/viewtopic.php?id=1102701&p=2 (Script d'extinction)
https://bbs.archlinux.org/viewtopic.php?id=127962 (Les scripts d-bus différents)
Dernière modification par K!rbY (Le 05/07/2014, à 03:07)
Hors ligne
#4 Le 05/07/2014, à 04:12
- K!rbY
Re : [Non-résolu] Eteindre et rallumer automatiquement à une heure fixe
Bon, problème avec le crontab au final. Quand je mets
0 2 * * * export DISPLAY=:0.0 && /usr/bin/hibernate
ça ne marche pas, mais quand je mets
* * * * * export DISPLAY=:0.0 && /usr/bin/hibernate
là ça marche. Incompréhensible.
Hors ligne
#5 Le 05/07/2014, à 07:51
- jplemoine
Re : [Non-résolu] Eteindre et rallumer automatiquement à une heure fixe
Je pense que ta gestion de l'horloge du bios n'est pas correcte.
Il est normal qu'elle est 2h de retard : elle est en UTC (GMT, Heure de Greenwich)
Il faut la laisser et mettre l'alarme en UTC.
Membre de l'ALDIL (Association Lyonnaise pour le Développement de l'Informatique Libre)
- En pro, après 20 ans de développement, administrateur Linux / Unix depuis Avril 2019.
- En privé, sous Ubuntu-Xubuntu depuis 2009.
Hors ligne
#6 Le 05/07/2014, à 11:09
- K!rbY
Re : [Non-résolu] Eteindre et rallumer automatiquement à une heure fixe
En fait, non bizaremment ça a marché hier comme par magie à 4:15 (oui je suis resté jusque si tard, au risque d'être crevé). Pile à l'heure ou je l'avais programmé, et aucun dérèglement de l'horloge.
Mais d'un coup, c'est l'hibernation automatique qui n'a plus voulu marcher. Du coup j'ai du l'hiberner manuellement.
Ce matin réveil (à la bonne heure je pense j'avais fait des tests hier soir et la sortie d'hibernation était à l'heure prévue). En tout cas au niveau de la mise en route journalière, ça marche et j'étais content, mon script de démarrage de serveur a marché, j'ai même vu plusieurs personnes de mon projet piocher dans les fichiers mis en ligne. En regardant dans les logs même, je vois que le serveur s'est allumé à 7h. Heure prévue, parfait.
DONC, bon point ici. Mais script à revoir. Je vais me re-renseigner, après tout ce n'est pas moi qui l'ai écrit.
Dernière modification par K!rbY (Le 05/07/2014, à 11:10)
Hors ligne