🎹 Signaux clavier dans un terminal Linux

CombinaisonNom du signalDescription
Ctrl+CSIGINT (2)Interrompt (interruption) le processus en cours. C’est le classique “stopper un programme”.
Ctrl+ZSIGTSTP (20)Suspend (pause) le processus courant (le met en arrière-plan, stoppé). Peut être repris avec fg.
Ctrl+\SIGQUIT (3)Termine le processus et crée un core dump (utile en débogage).
Ctrl+DEOF (End Of File)Ce n’est pas un signal mais une indication d’entrée terminée (fin de fichier). Elle peut arrêter cat, read, etc.
Ctrl+S(XOFF)Fige le terminal (pause de l’affichage).
Ctrl+Q(XON)Reprend l’affichage après un Ctrl+S.
Ctrl+L(aucun signal)Efface l’Ă©cran du terminal (Ă©quivalent Ă  clear).
Ctrl+U(aucun signal)Supprime tout ce que tu as tapé sur la ligne actuelle.
Ctrl+W(aucun signal)Supprime le dernier mot tapé.
Ctrl+A(aucun signal)Déplace le curseur au début de la ligne.
Ctrl+E(aucun signal)Déplace le curseur à la fin de la ligne.
Ctrl+K(aucun signal)Supprime du curseur jusqu’à la fin de la ligne.

Ctrl+C

arrête définitivement le processus en cours!

etudiant@ordi:~/Works/TP0_LINUX$ sleep 300

^C
etudiant@ordi:~/Works/TP0_LINUX$ 

on voit que le travail , ici dormir 300 secondes est interrompu pour toujours avec SIGINT

autre dĂ©mo avec la commande yes , qui permet de boucler Ă  l’infini soit y avec yes seul , ici surprise:

etudiant@ordi:~/Works/TP0_LINUX$ yes "Caroline Dorian"
Caroline Dorian
...
Caroline Dorian
Caroline Dorian
Caroline Dorian
Caroline Dorian
Caroline Dorian
Caroline Dorian
Caroline Do^C
etudiant@ordi:~/Works/TP0_LINUX$ 

Permet d’arrêter totalement le processus

Ctrl+Z

Stop le processus en cours .. mais pas définitivement !

etudiant@ordi:~/Works/TP0_LINUX$ yes "Caroline Dorian"
Caroline Dorian
..
..
Caroline Dorian
Caroline Dorian
Caroline Dorian
Caroline Dorian
Caroline Dorian
Caroline Dorian^Z
[1]+  Arrêté                yes "Caroline Dorian"
etudiant@ordi:~/Works/TP0_LINUX$

on a repris la main !! mais le processus est juste stoppé

la preuve :

etudiant@ordi:~/Works/TP0_LINUX$ jobs
[1]+  Arrêté                yes "Caroline Dorian"
etudiant@ordi:~/Works/TP0_LINUX$ 

intĂ©rĂŞt c’est qu’on repris la main !

et maintenant on dispose de 2 fonctions bg (background) fg (foreground)

etudiant@ordi:~/Works/TP0_LINUX$ jobs
[1]+  Arrêté                yes "Caroline Dorian"
etudiant@ordi:~/Works/TP0_LINUX$ fg %1  #%1 job 1
Caroline Dorian
Caroline Dorian
Caroline Dorian
.....
Caroline Dorian
Caroline Dorian
Caroline Dorian
Caroline Dorian
Caroline Dorian
Caroline Dorian
Caroline Dorian
Caroline Dorian
Caroline Do^Z
[1]+  Arrêté                yes "Caroline Dorian"
etudiant@ordi:~/Works/TP0_LINUX$ 
etudiant@ordi:~/Works/TP0_LINUX$ jobs
[1]+  Arrêté                yes "Caroline Dorian"
etudiant@ordi:~/Works/TP0_LINUX$ jobs
[1]+  Arrêté                yes "Caroline Dorian"
etudiant@ordi:~/Works/TP0_LINUX$ bg %1

il passe en background mais ça affiche tellement qu’on a plus la main

Solution: ouvrir un autre terminal ! et avec la fonction kill (tuer) on va envoyer le signal 9 a ce processus

etudiant@ordi:~$ ps -ax
    PID TTY      STAT   TIME COMMAND
      1 ?        Ss     0:04 /sbin/init splash
      2 ?        S      0:00 [kthreadd]
      3 ?        S      0:00 [pool_workqueue_release]
...
   6673 pts/4    Ss     0:00 -bash
   6698 ?        R      0:00 [kworker/u2:2-events_unbound]
   6712 pts/3    R      0:01 yes Caroline Dorian
   6714 pts/4    R+     0:00 ps -ax
etudiant@ordi:~$ kill -9 6712
etudiant@ordi:~$ 

on retrouve la main ! sur l’autre OUF ! on garde le contrĂ´le

si on fait -20 , c’est juste un stop !!

Amusant tout ça non ?