Contenu | Rechercher | Menus

Annonce

Ubuntu-fr.org recrute toujours de nouveaux modérateurs, avec de l'expérience.

Ubuntu 16.04 LTS
Commandez vos DVD et clés USB Ubuntu-fr !

Si vous avez des soucis pour rester connecté, déconnectez vous et reconnectez vous depuis ce lien en cochant le case
Me connecter automatiquement lors de mes prochaines visites.

#1 Le 23/01/2013, à 13: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, à 19:52)

Hors ligne

#2 Le 23/01/2013, à 22: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, à 21:35

BrunoL

Re : sleep ... à poing fermé

Hey tshirtman, je boude pas wink
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