Sommaire

Signaux Signal

Les signaux sont des moyens dont dispose le système pour communiquer avec les applications. Les signaux peuvent également être utilisés pour faire communiquer les différents programmes et réaliser des synchronisations.

Il est possible en Python d’intercepter des signaux pour réaliser certaines tâches spécifiques : nettoyage d’un log, exécution d’un programme particulier, sauvegarde d’une configuration…

Afin d’illustrer le procédé, nous allons intercepter le message de fermeture du programme SIGINT (SIGINT est un message transmis par le système d’exploitation à certaines applications pour signifier qu’une tâche va être interrompue).

Pour cela, il faut créer une fonction qui sera appelée lorsque nous intercepterons le message :

def reaction_intercept(signal, frame): 
    print("Message intercepté \n") 
    print("Le script sera fermé dans 5 sec\n") 
    time.sleep(5) 
    print("Fermeture") 
    sys.exit(0)

Cette fonction est très simple, puisqu’elle consiste en l’affichage d’un message et une pause de 5 secondes. Puis, nous sortons explicitement du programme avec sys.exit(0). Le paramètre 0 indique au système que la sortie s’est réalisée sans problème. Une autre valeur permettrait d’indiquer ...