Trap avec bash quand on ferme le shell

Fermé
Integreur Messages postés 86 Date d'inscription jeudi 1 décembre 2016 Statut Membre Dernière intervention 4 octobre 2022 - 25 avril 2017 à 19:54
 Utilisateur anonyme - 26 avril 2017 à 17:58
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



A voir également:

1 réponse

Utilisateur anonyme
25 avril 2017 à 21:36
Après test, il semble que ce soit un SIGKILL (9) qui est déclenché lors de la fermeture de la fenêtre
0
Integreur Messages postés 86 Date d'inscription jeudi 1 décembre 2016 Statut Membre Dernière intervention 4 octobre 2022
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 ?
0
Utilisateur anonyme > Integreur Messages postés 86 Date d'inscription jeudi 1 décembre 2016 Statut Membre Dernière intervention 4 octobre 2022
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
0