Je me suis fait un petit script bash pour stoper le docker de HA, exécuter une série d’actions et restart le docker. Tout marche bien tant que je n’ai pas d’écho après le stop du docker…
Script:
Voici déjà un script ultra édulcoré qui m’a permis de cibler l’erreur
Si je commente tous les echo, tout marche à merveille. Je décommente en partant du haut au fur et à mesure, tout continu de marcher …Mais à partir du moment ou je décommente un echo après le stop du docker, le script s’arrête à cet emplacement sans restart du docker.
(Et même constat si je fais des echo live en désactivant la sortie dans le log.
Pourquoi ne pas faire un appel à l’API d’HA pour invoquer hassio.host_shutdown ? Si tu demandes à docker de couper HA, docker coupe HA ! Si tu demandes à HA de couper HA, il va finir ce qu’il a à faire et stopper proprement.
Et tu peux même appeler l’API HA depuis python: Client Challenge
Pourquoi ne pas faire un appel à l’API d’HA pour invoquer hassio.host_shutdown ?
Je ne souhaite pas juste éteindre HA, le script est bien plus dense; il vient couper HA, modifier les config docker et relancer une fois la config pérenniser. (ajout de point de montage persistant principalement)
Si tu demandes à docker de couper HA, docker coupe HA !
Heu oui, c’est bien l’action attendu, mais comme le script à des opérations à faire en dehors de HA (au niveau system) HA ne peut pas s’en charger d’où l’objectif de la passer en ssh.
Et tu peux même appeler l’API HA depuis python
Même problème, j’adore les scripts python dans HA, mais c’est juste bon pour faire des choses dans le docker de HA pas au niveau sup.
Mais dans l’absolue pas trop de problème de ce côté là, tout marche très bien et cela m’évite des manip fastidieuses à la main en ssh… Le seul truc c’est que je voudrait pouvoir logger ds un fichier le résultat de mes actions pour un éventuel control ou débogage.
Et c’est juste cela que je n’arrive pas à faire ecrire dans mon log apres la coupure du docker alors que j’arrive à copier le fichier sur le disque.
Je ne le savais pas au début du script, mais comme ça marche je l’ai gardé, mais oui tu as raison; c’est d’ailleurs ce que je fais qd je dois le faire à la main
Du coup toujours pas d’idée pour le stop d’exécution sur les echo ?
existe t-il en bash un moyen simple de loger une action ds un fichier sans echo ?
Bonne idée mais malheureusement le script fonctionne très bien lorsque je l’execute dans un terminal avec des sorties OK. C’est uniquement executer sans terminal qu’il plante.
Et la tout marche … Le printf est juste la pour tester si la commande echo était le problème mais nom le printf dans le script rencontre la même erreur…
Bonne idée, mais j’ai aussi testé sans et cela ne vient pas de la non plus, d’ailleurs, maintenant cela fonctionne très bien en gardant cette structure et en sortant juste les « echo » dans une fonction. A mon avis on est plus proche du bug que d’autre chose … je ne vois pas…
Petite réflexion : ton script original fonctionnerait il correctement si tu utilisais des printf à la place des écho ? (Et donc sans passer par la fonction _log ) ?
Ha ! Ça se complique un peu pour le déboggage .
Perso j’aime bien quand les scripts fonctionnent tels que je les ai écrit … ça me chiffonne de pas réussi