Signaler

Trap avec bash quand on ferme le shell

Posez votre question Integreur 45Messages postés jeudi 1 décembre 2016Date d'inscription 1 septembre 2017 Dernière intervention - Dernière réponse le 26 avril 2017 à 17:58 par Rocailleux
Bonjour,

J'ai fais un script bash qui utilise pas mal de fichier donc en cas d'erreur de l'utilisateur ou a la fermeture du shell via la croix, j'aimerais lancer le nettoyage des fichiers utilisé auparavant par le script.

les signaux ctrl+c marche bien avec
trap f_cleanup SIGINT
trap f_cleanup SIGTERM


dans ce cas la le nettoyage se lance, mais pas quand je quitte le shell via la croix de la fenetre.Comment faire sa ?

Merci a vous



Utile
+0
plus moins
Après test, il semble que ce soit un SIGKILL (9) qui est déclenché lors de la fermeture de la fenêtre
Integreur 45Messages postés jeudi 1 décembre 2016Date d'inscription 1 septembre 2017 Dernière intervention - 26 avril 2017 à 07:17
Donc si c'est un SIGKILL9 il y a pas moyen de faire le nettoyage des fichiers au moment de l'appui sur la croix de la fenetre ? vue que SIGKILL9 est une interruption directe ?
Répondre
Rocailleux 540Messages postés mercredi 9 mars 2016Date d'inscription 26 juillet 2017 Dernière intervention - 26 avril 2017 à 17:58
Je me suis trompé dans mon premier post, mon test montre que c'est SIGHUP qui est appellé :

#!/bin/bash

function a(){
echo 'a' >> logs
}
function b(){
echo 'b' >> logs
}
function c(){
echo 'c' >> logs
}
function d(){
echo 'd' >> logs
}
function e(){
echo 'e' >> logs
}
function f(){
echo 'f' >> logs
}
function g(){
echo 'g' >> logs
}


trap a SIGHUP
trap b SIGINT
trap c SIGQUIT
trap d SIGABRT
trap e SIGKILL
trap f SIGALRM
trap g SIGTERM


sleep 60s


Ce script a été lancé dans xterm, le fichier logs une fois le terminal fermé via la croix contient "a", donc SIGHUP
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !