Automatiser l’extinction et le redémarrage d’un ordinateur avec rtcwake

Bonjour,

Hier après-midi, en faisant mes courses, j’ai constaté que Linux Welt était en vente dans le kiosque à journaux de la modeste bourgade allemande où j’habite. Ach! Grosse Freude!

9_6_2019_22:50:17

En feuilletant ma revue gouik préférée et en plongeant mon nez dans les pages pour bien les sentir (j’aime bien l’odeur des livres ou des revues…), je suis tombé sur un article très intéressant qui traite de l’extinction et du redémarrage automatique d’un ordinateur grâce à l’outil rtcwake. J’ai donc envie de vous  montrer comment tout cela fonctionne. Nous ferons une mise en pratique en transformant votre compagnon préféré en radio-réveil pour débuter la journée tout en douceur.

  1. Démarrage : configuration actuelle de mon ordinateur
  2. Configurer l’autologin
  3. Configurer le lancement automatique de startx
  4. Configurer l’extinction et la mise en route automatique
  5. Configurer crontab
  6. Configurer son navigateur vivaldi ou firefox pour un réveil musical tout en douceur
  7. Conclusion (systemd comme alternative?)

1. Démarrage : configuration actuelle de mon ordinateur

Cela fait plusieurs années que je n’utilise plus de gestionnaire de connexion graphique, tout simplement parce que je n’en vois pas l’utilité. Lorsque j’allume mon fidèle compagnon, c’est une console tty qui s’ouvre et qui m’invite à renseigner :

  • mon identifiant : ordinosor
  • mon mot de passe : SH5Z_Qb~ri1wbhTrj8Gd5fc_ZwU

Ensuite, il me suffit d’entrer la commande startx et je me retrouve sur mon bureau! Alors, je vous vois venir avec vos gros sabots! Vous allez me faire la remarque que mon mot de passe est beaucoup trop long. Mais moi je vous réponds que c’est un gage de sécurité, une assurance contre les pirates informatiques dissimulés sous leur chandail à capuche, dans une sordide banlieue de Volgograd et prêts à faire main basse sur ma fortune sur mon compte en banque. Plutôt que de ricaner bêtement, vous seriez bien avisés de suivre mon exemple.

2. Configurer l’autologin

Nous allons donc d’abord commencer par configurer l’autologin.

2.1 Avec un gestionnaire de connexion graphique, par exemple lightdm

C’est relativement simple. Il vous suffit d’ouvrir ou de créer le fichier /etc/lightdm/lightdm.conf et d’y ajouter les lignes suivantes:

[Seat:*]
autologin-user=ordinosor # À remplacer par votre nom d'utilisateur
autologin-user-timeout=0

2.2 Sans gestionnaire de connexion graphique (ce qui est mon cas)

Pour ne plus avoir besoin d’entrer vos identifiants dans la console tty, prière d’ouvrir le fichier /etc/systemd/logind.conf et de remplacer la ligne #NAutoVTs=6 par NAutoVTs=1. Puis, ouvrez un terminal et entrez la commande suivante :

sudo systemctl edit getty@tty1

Le fichier va s’ouvrir. Veuillez entrer ces lignes :

[service]
ExecStart=
ExecStart=-/sbin/agetty --autologin root --noclear %I 38400 linux

Maintenant, il faut demander à systemd d’autoriser le service:

sudo systemctl enable getty@tty1.service

Rebootez. Normalement, l’autologin fonctionne mais en root! Entrez à nouveau cette commande:

sudo systemctl edit getty@tty1

Remplacez root par votre nom d’utilisateur, en l’occurrence ordinosor pour moi.

[service]
ExecStart=
ExecStart=-/sbin/agetty --autologin ordinosor --noclear %I 38400 linux

Rebootez. Si tout va bien, vous allez vous rendre compte que l’autologin est opérationnel. Mais ce n’est pas terminé puisque vous êtes encore obligés de démarrer la session X à la main, avec la commande startx.

3. Configurer le lancement automatique de startx

La procédure que je vous décris dans ce paragraphe ne s’applique que dans le cas où vous n’avez pas de gestionnaire de connexion graphique.

Pour que la session X se lance automatiquement, veuillez rajouter ces lignes à la fin du fichier /etc/profile ou à la fin du fichier ~/bash_profile :

if [[ -z $DISPLAY && $XDG_VTNR -eq 1 ]]; then
  exec startx
fi

Rebootez. Si tout va bien, cette fois-ci, vous allez atterrir sur votre bureau sans avoir besoin de renseigner vos identifiants.

4. Configurer l’extinction et le réveil automatique

C’est la commande rtcwake qui va nous permettre d’éteindre et de rallumer notre ordinateur à une heure donnée. Rtcwake, qui fait partie du paquet util-linux est normalement pré-installé sur tous les systèmes d’exploitation Linux. Nous allons tester une extinction suivie d’une remise en route au bout de 20 secondes :

sudo rtcwake -m off -s 20

off signifie que nous allons complètement éteindre l’ordinateur et -s 20 signifie que nous allons le rallumer au bout de vingt secondes. Allez-y, entrez cette commande dans un terminal.

Si tout s’est bien passé, votre ordinateur s’est éteint et s’est rallumé vingt secondes plus tard. Vous avez fait le plus dur!

5. Configurer crontab

Il ne nous reste plus qu’à automatiser la tâche. Faisons en sorte que l’ordinateur démarre à 7 heures tous les matins et qu’il s’éteigne à 23 heures 15 minutes tous les soirs. Il faut modifier le crontab du root et non pas celui de votre compte utilisateur, car la commande rtcwake nécessite sudo.

Entrez cette commande dans un terminal :

sudo crontab -e -u root

Puis rajouter la ligne suivante dans le fichier crontab:

 15 23 * * * /usr/sbin/rtcwake -m off -s 27900

27900 correspond au nombre de secondes écoulées entre l’ extinction de l’ordinateur à 23 heures 15 et le démarrage à 7 heures.

6. Configurer son navigateur Vivaldi ou Firefox pour un réveil musical tout en douceur

Nous voici presque arrivés au terme de notre objectif. Il ne nous reste plus qu’à configurer le navigateur Vivaldi ou Firefox pour que celui-ci se lance au démarrage et embraye sur une video youtube qui saura nous extraire des bras de morphée  tout en douceur.

Pour les deux navigateurs, il vous faut cliquer sur la roue dentée qui symbolise les préférences, et modifier la page d’accueil en y incluant l’adresse de la vidéo youtube immédiatement suivie de &autoplay=1 pour que la vidéo démarre toute seule. Dernière chose, n’oubliez pas de rajouter cette commande dans l’un de vos fichiers autostart (par exemple ~/.config/openbox/autosart si vous utilisez openbox) :

vivaldi & #ou firefox &

Et dès demain matin …

Conclusion

Voici un bien bel outil qui fonctionne très bien sur mon ordinateur portable Sur mon PC fixe de bureau, j’ai été confronté à un petit problème. En fait, l’extinction fonctionnait mais pas le redémarrage.

Je me suis donc tourné vers systemd avec le même résultat. Extinction OK, démarrage KO! Je trouvais ça bien dommage car j’avais pensé réveiller mes deux ordinateurs tous les matins pour leur faire accomplir des tâches de synchronisation et de mises à jour. Eh bien, j’ai fini par trouver la solution : Dans le BIOS, j’ai réglé la valeur de HPET (high precision event timer) sur disabled. C’est-à-dire que j’ai désactivé cette fonctionnalité. Maintenant, tout fonctionne. Ende gut, alles gut!*

Ordinosor
Antre de Volgor
Snæfellsjökull

*Tout est bien qui finit bien!

16 commentaires sur “Automatiser l’extinction et le redémarrage d’un ordinateur avec rtcwake

  1. J’ai survolé l’article, pour le démarrage automatique, as tu pensé à vérifier que le bios/UEFI le permettait, il doit y avoir une option lié au wake* ou bien selon les states S1à6 dans lequel se trouve le pc après extinction.
    C’est un peu brouillon mais c’est des pistes 🙂

    1. Salut,

      merci pour ton aide. Oui, j’ai vérifié mais je n’ai toujours pas trouvé la solution. Je ne sais pas si c’est lié mais j’ai toujours une erreur qui s’afiche depuis quelque temps et je ne parviens pas à en trouver la cause :
      « ACPI Error: AE_NOT_FOUND, While resolving a named reference package element »

  2. Merci pour ce tutoriel. Je dois cependant signaler qu’il m’a fallu, ici (Debian 10), faire quelques modifications pour que l’autologin sans gestionnaire de connexion graphique fonctionne.

    En gros, j’ai dû remplacer ça :

    [service]
    ExecStart=
    ExecStart=-/sbin/agetty/ –autologin ordinosor –noclear %I 38400 linux

    Par ça :

    [service]
    ExecStart=
    ExecStart=-/sbin/agetty –autologin ordinosor –noclear %I linux

    /sbin/agetty étant une commande, il semble logique de l’appeler sans ‘/’ à la fin. Quant à ‘38400’, je n’ai aucune idée de ce dont il s’agit, mais je l’ai vu dans d’autres tutoriels, et, dans mon cas, l’effacer a permis, après la première modification (‘./sbin/agetty’), d’avoir enfin l’autologin qui fonctionne, suite à de nombreux essais avec diverses modifications qui n’avaient rien donné.

    1. Bonjour et merci pour votre commentaire,

      Oui, il s’agit d’une coquille. C’est bien /sbin/agetty et non pas /sbin/agetty/. Avec le slash final, ça ne peut pas fonctionner.
      Merci de l’avoir signalée.
      Benoît

  3. Salute,

    Juste pour préciser parce que je trouve le titre plutôt faux, man rtcwake : Mettre le système en veille jusqu’à une date de réveil indiquée. Une extinction ce n’est pas une mise en veille et un démarrage ce n’est pas une sortie de veille.

    Tcho !

    1. Salut,

      Ça ne me pose pas de problème de modifier éventuellement le titre mais je voudrais être sûr de comprendre, car concernant l’option off, dans le man rtcwake en version allemande, je lis ceci :

      ACPI-Zustand S5 (Ausschalten). Dies erfolgt durch Aufruf von »/sbin/shutdown«. Wird von ACPI nicht offiziell unterstützt, funktioniert üblicherweise aber.

      Je traduis :

      État ACPI S5 (extinction). Cela se produit en invoquant la commande /sbin/shutdown. [Cette option] n’est pas officiellement supportée par ACPI. Cela dit, elle fonctionne en général.

      Y a-t-il une erreur dans la version allemande?
      merci d’avance pour ton aide,
      Benoît

    2. Cela dit, la traduction allemande de la description générale est conforme à ce que tu écris :
      – rtcwake – bis zu einer angegebenen Aufwachzeit in einen Systemschlafzustand eintreten
      – En français : Mettre le système en veille jusqu’à une date de réveil indiquée.

  4. Le man fr : off État S5 de l’ACPI (extinction). C’est réalisé en appelant « /sbin/shutdown ». N’est pas officiellement pris en charge par l’ACPI, mais fonctionne souvent.

    Je ferai des tests si j’ai un peu de temps.

    Tcho !

    1. Ok Merci. Comme je l’écris dans un commentaire plus haut. Ça fonctionne très bien avec mon ordinateur portable mais par contre, sur mon PC fixe, le redémarrage ne fonctionne pas. Il n’y a que l’extinction qui est opérationnelle.

      @+
      Benoît

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.