Trap avec bash quand on ferme le shell
Integreur
Messages postés
90
Statut
Membre
-
Utilisateur anonyme -
Utilisateur anonyme -
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
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
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
1 réponse
-
Après test, il semble que ce soit un SIGKILL (9) qui est déclenché lors de la fermeture de la fenêtre
-
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 ?
- 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
-