Précédent   Forum du club des développeurs et IT Pro > Systèmes > Linux > Contribuez
Contribuez Vos contributions pour la rubrique Linux : articles, cours, tutoriels, faq, comparatifs, tests, sources, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 28/02/2011, 23h27   #1
hornetbzz
Membre chevronné
 
Avatar de hornetbzz
 
Homme
Directeur commercial
Inscription : octobre 2009
Messages : 481
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 45
Localisation : France

Informations professionnelles :
Activité : Directeur commercial

Informations forums :
Inscription : octobre 2009
Messages : 481
Points : 719
Points : 719
Envoyer un message via Skype™ à hornetbzz
Par défaut Comment sortir d'un programme suite à une interruption Control-C

Et hop, encore une, un peu plus délicate à résumer en 5/6 lignes celle-ci :

Si votre script comporte quelques processus sensibles, vous risquez de l'être aussi quant à une interruption brutale de votre script par un CTRL-C. Pour éviter cette situation, on peut traquer le signal d'interruption et rediriger vers une fonction de sortie propre si le signal est détecté. C'est une des vocations de la fonction trap. Cette fonction de sortie pourrait par ex supprimer les fichiers temporaires que vous avez pu créé, arrêter des processus lancés par votre script, et enfin chercher à arrêter proprement votre script

Exemple :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/bin/bash
trap 'clean_exit' SIGINT
 
function clean_exit(){
	kill -15 $$ &
	wait $!
	# Si ça marche pas, soyons plus brutaux
	kill -9 $$
 
}
# Une boucle infinie
((count=0)
while :
do
   echo "$count: bah j'attends, comme Charles"
   sleep 3
   ((count++)
done
hornetbzz est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 23h33.


 
 
 
 
Partenaires

Hébergement Web