Forum Programmation.shell Les signaux avec Trap

Posté par . Licence CC by-sa.
0
21
oct.
2018

Bonjour à tous,

Je suis en train de préparer un petit cours pour des étudiants sur les signaux avec trap. J'ai bien compris l'utilité de ce principe avec l'exemple sur signal 2 SIGINT :

  • trap "echo hello" 2 : qui affiche hello à chaque fois que l'on tape sur le raccourci ctrl+c.

Par contre, j'ai du mal à assimiler l'utilisation des cas suivants :

  1. L'effet du signal 3 SIGQUIT.

  2. L'effet du siganl 9 SIGKILL.

  3. L'effet du signal 19 SIGSTOP.

Pouvez-vous m'orienter avec des exemples simples svp ?

Merci d'avance.

  • # Signaux génériques

    Posté par . Évalué à 4 (+3/-0).

    Salut,

    Les signaux ont des usages et comportements bien définis :

    SIGQUIT (3) : Quitter, avec génération de core dump
    SIGTERM (15) : "Veux-tu bien mourir proprement ?" (essaie de mourir proprement, sans mettre des bouts de cervelle et de sang partout)
    SIGKILL (9) : "Crève immédiatement" (très violent et efficace) (en gros, le noyau détruit le processus à distance sans rien lui demander)
    SIGSTOP (19) : Mise en pause (équivalent du Ctrl-Z dans le terminal), reprise avec SIGCONT (18)

    Voilà…

    https://www.gnu.org/software/libc/manual/html_node/Termination-Signals.html

    Courage !

    • [^] # Re: Signaux génériques

      Posté par (page perso) . Évalué à 3 (+1/-0).

      En gros, SIGQUIT, tu te le choques aussi avec Ctrl+C. Avec trap, tu peux modifier le comportement d'un programme pour tenir compte du signal sauf le SIGKILL (kill -9) que ton programme ne reçois pas car l'OS ne lui en laisse pas le temps ;-)

      • [^] # Re: Signaux génériques

        Posté par . Évalué à 1 (+0/-0). Dernière modification le 21/10/18 à 20:56.

        Euh non, tu ne "choques" pas SIGQUIT avec Ctrl+C.
        Ou alors, peux-tu développer ?

        • [^] # Re: Signaux génériques

          Posté par (page perso) . Évalué à 2 (+0/-0). Dernière modification le 22/10/18 à 11:41.

           s/choques/choppes/
          

          En gros, un programme choppe un SIGINT lorsque tu lui fait un Ctrl+C. J'avoue que j'ai écrit un peu vite ;-)

  • # Commentaire supprimé

    Posté par . Évalué à 1 (+0/-0). Dernière modification le 21/10/18 à 18:16.

    Ce commentaire a été supprimé par l'équipe de modération.

  • # Et aussi…

    Posté par . Évalué à 2 (+1/-0).

    • [^] # Re: Et aussi…

      Posté par . Évalué à 3 (+1/-0).

      Sinon, y'a man 7 signal sous Debian et probablement bien d'autres unix-likes. C'est plus écolo et marche même quand y'a des merdes sur le réseau, sans parler du fait que pas besoin d'aller dire à google ou autre que tu es intéressé par l'info (et donc, fausser de facto toutes les mesures à 2 balles de visites de site et de recherche google sur la popularité des techno)

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.