Re: [systemd] Service conditionné sur l'existence d'un fichi…

Page principale

Répondre à ce message
Auteur: Edgar Bonet
Date:  
À: guilde
Sujet: Re: [systemd] Service conditionné sur l'existence d'un fichier
Dominique Fournier a écrit :
> J'ai trouvé il y a quelque /dev/serial/by-id/ qui ne devrait pas
> changer lors des insertions.


Oui, j'avais déjà vu ça. C'est un lien symbolique vers un /dev/ttyUSB*.
Je m'en servais déjà dans la première version du script :

    port=/dev/serial/by-id/usb-FTDI_UM232R_USB__-__Serial_A156DVPL-if00-port0
    stty -F $port raw -echo 115200
    nc -k -n -l -p 1234 < $port > $port


Le problème était que, si le câble USB est débranché, le port disparaît
(aussi bien le /dev/ttyUSB* que le lien symbolique), mais netcat n'est
pas tué pour autant. Il reste actif avec ses stdin/stdout connectés
quelque part dans une autre dimension. Quand je rebranche le câble, le
lien symbolique réapparaît (avec le même nom), pointant vers un _autre_
/dev/ttyUSB*. Netcat est toujours vivant, mais ne communique pas avec ce
nouveau port. Il me fallait donc trouver le moyen de tuer netcat quand
le port disparaît et le relancer quand il apparaît.

Finalement, faute d'arriver à convaincre systemd de gérer pour moi
l'arrêt et la relance de netcat, je gère ça moi même avec un script bash
sensiblement plus compliqué. C.f. mon message précédent dans ce fil.

À+,

Edgar.