Jeudi - Poser une Trappe sur une Section de Code
08/07/2004
Limitez vos fonctions trappes qu’à la partie critique d’un script, souvent autour d’un nombre de commandes ne devant pas être interrompues.
Ce script attrape les signaux HUP, INT et TERM autour du code critique puis pousse le gestionnaire vers le code normal.
$ cat trap3 #!/bin/bash
handlesig () { echo "Got an INT" #...... }
# critical code - stop interrupts trap "handlesig" HUP INT TERM
echo "Critical code"
# use sleep to represent a lengthy block of code sleep 1; sleep 1; sleep 1; sleep 1; sleep 1; sleep 1 sleep 1; sleep 1; sleep 1; sleep 1; sleep 1; sleep 1
# normal code - allow interrupts trap - HUP INT TERM
echo "Normal code" sleep 1000
L’instruction :
trap - SIGNAL-LIST
retire un gestionnaire des signaux listés et le remplace par celui par défaut (s’il y en a un).
$ ./trap3
Critical code
Got an INT
^CGot an INT
Normal code
Hangup
Dans une autre fenêtre (en utilisant la fonction killsig de Lundi) :
$ killsig HUP trap3
(wait a bit until normal code is entered)
$ killsig HUP trap3
Si vous souhaitez en apprendre plus sur Mac OS X Unix visitez le Learning Center
cliquez ici.
- Pour les débutants : Le Tutoriel Mac OS X Unix
- Pour plus d’informations sur des sujets spécifiques : Mac OS X Advanced Unix
- Pour des réponses à des problèmes communs : Mac OS X How To
Chargement
Commentaires récents