Précédent   Forum des professionnels en informatique > 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 Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/02/2011, 23h27   #1
Membre chevronné
 
Avatar de hornetbzz
 
Homme
Directeur commercial
Inscription : octobre 2009
Messages : 474
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 44
Localisation : France

Informations professionnelles :
Activité : Directeur commercial

Informations forums :
Inscription : octobre 2009
Messages : 474
Points : 681
Points : 681
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 Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h32.


 
 
 
 
Partenaires

Hébergement Web