


5. Mises au point / améliorations
5.1 Correctifs
Le 12/10/2001:Tout fonctionne, le script powerfail reçoit bien le bon signal, mais la commande shutdown ne veux pas arreter la machine! Etant sous Debian, je me demande si cela vient d'une particularité de celle ci (configuration de sécurité ou autre), ou si le problème vient d'ailleur... Bref, il faut encore creuser ça!
Le 13/10/2001:
Ca y est, ca marche!
Reste à optimiser!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Le 16/10/2001:
Amélioration du demon: a présent, celui-ci envoi un beep (frequence et durée reglable dans le source), lorsqu'il detecte un changement d'état.
Ensuite, le demon sonne deux fois, puis trois fois, puis 4 fois et envoi la commande à init. Si vous rebasculez l'état avant le quatrième bit, le demon arrete
sont decompte, sonne une fois (un beep plus aigue), puis reprend sont attente.
Le 26/10/2001:
Modification du script powerfail, afin qu'il rende la main correctement, sinon, tout va de travers!!!
Debut d'une amélioration du bouchon: mise en place d'un second signal (en cours, doc à venir)
Le 03/11/2001:
Pas de changement côté doc ni programmation, mais j'etudie l'utilisation d'un bouton à 3 états:
- Au repos: etat 0, de cette façon, vous pouvez connecter ou retirer le bouchon quand vous le désirez, le demon ne vera rien;
- Etat 1: lancement du shutdown
- Etat 2: kill du serveur X
Pour le momment, je suis à la recherche de la meilleur connection pour la recuperation des signaux du bouchon
5.2 La nouvelle prise
Nouveau bouchon, dont voici le branchement:
Pour rappel, voici les numéro des broches:
-------------------------
\ 5 4 3 2 1 / shema d'une prise série femelle, vue de face
\ 9 8 7 6 / (de toute façon, les chiffres sont gravés sur la prise)
---------------------
et voici comment connecter les composants:
+------------------------o DTR (broche n°4)
|
+---+
| | resistance
| | 10 kilo-Ohm
| |
+---+
|
| +-------------o DSR (broche n°6)
| |
| |
| |
| +-----------------------o/ plot 1 du bouton
| /
+------------------------< point milieu du bouton
\
+-----------------------o\ plot 2 du bouton
|
|
|
+-------------o DCD (broche n° 1)
Comme vous pouvez le constater, ce n'est guère plus compliqué que la version précédente, mais à présent,
nous avons deux signaux utilisable, et un point 'neutre'.
5.3 Le nouveau logiciel
Comment cela se passe t il maintenant?Vous avez le daemon qui tourne, votre prise branché, l'interrupteur au point milieu.
Lorsque vous basculez l'interrupteur (quelque soit la position), le daemon remarque le changement d'etat. A ce momment, il va regarder si cela ne change pas, trois fois de suite. Si l'inter n'est pas revenu a l'etat initial, il ecrit dans le fichier /etc/powerfail l'un des trois mot suivant:
FAIL, LOW ou OK
puis envoi un signal SIGPWR au processus init.
Celui-ci regarde dans le fichier /etc/inittab ce qu'il doit en faire, en fonction du mot trouvé dans /etc/powerfail,
puis il envoit une des commandes spécifique au script /etc/init.d/powerfail. Voici la correspondance entre
le mot reservé dans /etc/powerfail et la commande passé à /etc/init.d/powerfail:
FAIL -> stop-x
LOW -> stop-init
OK -> restore
A partir de ce momment la, le script /etc/init.d/powerfail execute la commande associée au parametre venant d'init.A noter que l'association entre le mot réserve dans /etc/powerfail et la commande envoyé, est totalement subjectif. Vous pouvez, de vous même, modifier la correspondance.
A présent, il reste à debuger un peu. Mes essais fonctionnent, c'est déjà ça!
5.4 La nouvelle méthode d'installation


