en fait je veux redirigé le signal SIGINT vers une fonction afin de faire terminer mon script proprement.
j'ai donc fait une fonction :
pis j'ai mis la redirection au début du script :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 # Fonction d'interception d'un SIGINT (Ctrl C clavier) # Histoire de sortir proprement ;) sub pause(){ my $signal = shift; &log("-> Script arrêté volontairement par un utilisateur !!! (un Ctrl C a été envoyé...)\n"); &endScript(); }
normalement ça devrait marcher mais en fait y a plusieurs threads qui tournent...
Code : Sélectionner tout - Visualiser dans une fenêtre à part $SIG{INT}=\&pause;
j'ai donc tenter de mettre la redirection du SIGINT au début des fonctions des threads. je ne sais pas si marche :s
en fait le problème ne vient pas d'eux : le prog pricipal est en train d'utiliser le module NET::FTP et est en plein téléchargement... la capture des SIGINT doit être gérer dans une couche inférieure car un Ctrl C ne fait rien...
comment je peux faire pour réussir à pouvoir arrêter mon téléchargement par un Ctrl C et tant qu'à faire pouvoir faire un dernier traitement ?
Partager