Voici le code d'un script shell :
01. #!/bin/sh
02. 03. while true ; do
04. # parcourt de tous les fichiers de peripheriques USB HID
05. # presents dans /dev/usb/hid et lancement du convertisseur
06. # souris sur le premier correspondant a une souris.
07. for I in /dev/usb/hid/* ; do
08. hiddevicetype $I > /dev/null
09. if [[ $? == 2 ]] ; then
10. convertsouris $I /dev/tts/1
11. # Une fois la conversion lancee, elle ne retourne que
12. # si elle est arretee ou si la souris est debranchee.
13. break
14. fi
15. done
16. sleep 1
17. done |
Ce script est la pour lancer un programme (convertsouris) quand une souris USB est branchée sur le systeme.
Lorsque rien n'est branché en USB, /dev/usb/hid/ est vide, donc on ne passe pas dans le for.
Dans ce cas (rien de branché), au bout de quelques minutes, le script se plante en mettant :
/etc/Modconv/souris_loop.sh: line 17: 6926 Segmentation fault sleep 1 |
Une idée de pourquoi je me prends un segfault sur un sleep ?