Trap avec bash quand on ferme le shell

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. Après test, il semble que ce soit un SIGKILL (9) qui est déclenché lors de la fermeture de la fenêtre
    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 ?
    2. @IntegreurJe 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