Capturer des signaux UNIX avec le module signal Signaux UNIX signal
Les signaux UNIX forment une part importante
de la programmation système. Un signal est un message asynchrone
qui notifie un événement particulier à un
programme. La bibliothèque standard de Python propose un
module pour exploiter l’utilisation des signaux, le module signal. Avant d’aborder
la partie programmation, un bref rappel de la manipulation des signaux est
nécessaire.
Depuis la ligne de commande, l’outil kill est généralement
utilisé pour envoyer un signal à un programme : kill
patrice@raspberrypi ~ $ kill
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ...
or kill -l [sigspec]
patrice@pi ~ $ kill -SIGTERM 1
bash: kill: (1) - Operation not permitted
Dans cet exemple, la commande kill est utilisée pour envoyer
le signal SIGTERM au programme init dont le PID (Processus ID) est toujours 1. Cependant,
le système d’exploitation retourne une erreur.
En effet, le comportement par défaut d’un programme
est d’accepter un signal seulement si l’utilisateur
qui l’envoie est habilité à modifier
l’état du programme. Généralement,
le propriétaire du programme ou bien le super utilisateur root. Par exemple, le programme init, processus parent de tous les
processus courants, ne peut recevoir de signaux d’un utilisateur
autre que root, et ceci afin
de garantir la stabilité ...