Pingouindumint a écrit : ↑ven. 29 oct. 2021 22:22
Par contre, je n'ai pas eu le temps d'essayer la solution de tioker. J'espère pouvoir l'essayer demain en fin de journée.
Bonjour,
@Pingouindumint a du être bien occupé car il ne nous a pas fait de retour sur la solution "à l'arrache" que j'ai proposée.
Mais je comprends, tout le monde n'est pas à la retraite comme moi
.
J'ai donc utilisé cette période d'inter-saison pour écrire un petit programme Python qui, je l'espère, applique le cahier des charges de notre ami. Ce programme n'est qu'en version ZÉRO mais il fonctionne. Comment ? En voici le détail:
- un fichier de type texte extension ".ini" contient tous les paramètres, titres compris (pour l'universalité) Image1
- nous créons un mot de passe (pour éviter le SUDO) avec la fonction sha256 ou 512 de la librairie hashlib
(1). Ce mot de passe servira à arrêter le compte à rebours si besoin. C'est la fonction
Init du premier écran. Image2. Le mot de passe
hashé sera contenu dans le fichier INI
(2), on le copiera dans le fichier INI (il est mis dans le presse-papier). Image3
- L'écran de lancement propose de choisir la durée au bout de laquelle on mettra le PC
en veille (pas de déconnexion complète) et de lancer le process de surveillance (Submit). On peut alors sortir du lanceur. Les bornes sont paramétrables (.INI). Image4
- le process détaché va sommeiller jusqu'au 9/10 du temps, là il avertira (fenêtre popup) que le temps est bientôt atteint. Et au terme de la durée il mettra la session en veille
(3)
- On peut supprimer à tout moment le compte à rebours (supprimer, pas suspendre) à l'aide de l'écran de lancement (le bouton Kill sera alors actif puisqu'il verra qu'un compte à rebours est en cours).
Ce qu'il me reste à faire:
-
programmer en belle écriture objet (POO) pour que Cyrille (qui a toujours raison) ne me tire pas les oreilles FAIT
- aujourd'hui je communique par la technologie des sémaphores qui me permettent d'envoyer un process détaché la simulation de <ctrl>c. Mais je ne trouve pas ça propre, j'aurai préféré utiliser des sémaphores privés pour réveiller le process mais je cherche encore comment faire.
- vérifier que les bibliothèques (import python) soient standards dans les distributions OS Linux (pour éviter leur installation). C'est une des raisons pour laquelle j'ai utilisé Tkinter (rustique) plutôt que Gtk (plus élégant) car c'est universel (même sur Raspbian de Raspberry). Seule la fonction de popup nécessite aujourd'hui une installation mais je vais regarder pour m'en passer
- et du coup en écrire une version Gtk pour faire joli (Tkinter ne prend pas en compte le thème alors que Gtk oui - et ça fait une grosse différence)
- regarder si on peut lancer ça au démarrage d'une session
- mettre tout ça dans Github pour la communauté
Voilà. Dites moi ce que vous en pensez, et @Pingouindumint , fais nous un retour sur la solution à l'arrache et son ton [éventuel] intérêt dans ce petit programme. En tous les cas, dans l'ordre, les images.
(1) c'est dingue comment c'est simple.
(2) Rappel, on peut hasher un mot de passe en clair mais on ne peut pas retrouver le mot de passe origine à partir du hash.
(3)évidemment il faut que la connexion ne soit pas automatique et donc nécessite la saisie du mot de passe
Fichier INI
Contrôle d'accès
Hash à mettre dans INI
Lanceur