Trap avec bash quand on ferme le shell

Integreur Messages postés 90 Statut Membre -  
 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
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

  1. Utilisateur anonyme
     
    Après test, il semble que ce soit un SIGKILL (9) qui est déclenché lors de la fermeture de la fenêtre
    0
    1. Integreur Messages postés 90 Statut Membre 1
       
      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
      1. Utilisateur anonyme > Integreur Messages postés 90 Statut Membre
         
        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