Pages : 1
#1 Le 23/01/2013, à 12:41
- BrunoL
sleep ... à poing fermé
Bonjour,
Le branchement d'une clé USB lance un script bash qui lance à son tour un second script bash en tâche de fond (&).
Ce second script commence par attendre 10 secondes (sleep 10) avant de faire son traitement qui se déroule bien.
soit :
(UDEV) --> (script 1) --> (script 1 ...10 s... fin)
Î___________|
Sans être un problème car le traitement effectif se déroule correctement je constate un décalage dans exécution d'"echo" qui alimentent un fichier log.
En pratique, UDEV déroulement OK, Script1 idem y compris les "echo" de log (<1s) et donc pas de blocage de UDEV. Script2 le traitement est OK (10s) mais le fichier log n'est actualisé qu’après une intervention sur le bureau (entrée dans un terminal quelconque voire taper dans un traitement de texte ouvert ...)
J'ai vu dans le "Guide avancé d'écriture des scripts Bash" (p186) qu'il s'agit d'une réaction connue mais l'astuce évoquée (mettre un wait à la fin du script appelant) ne peut pas être appliquée. Le script1 ne doit pas bloquer UDEV.
Auriez-vous une autre astuce ?
Merci.
Dernière modification par BrunoL (Le 23/01/2013, à 18:52)
Hors ligne
#2 Le 23/01/2013, à 21:50
- tshirtman
Re : sleep ... à poing fermé
Je suis pas 100% sur, mais si c'est ce que je pense, un appel à la commannde "sync", devrait résoudre le problème…
Hors ligne
#3 Le 25/01/2013, à 20:35
- BrunoL
Re : sleep ... à poing fermé
Hey tshirtman, je boude pas
mais mon script fonctionne correctement depuis mon message initial !
Soit juste après un redémarrage... et ajout de quelques lignes de code en fin de script. Si cela se reproduit je testerai ta solution et ferai un retour.
Merci.
Hors ligne