Déconseillé ou non, il est en fait impossible:
Les raccourcis clavier Control + [?] Sont en fait gérés par le pilote tty et non par le shell, car tant qu'un processus s'exécute au premier plan, les entrées et sorties de votre terminal seront transmises directement au processus. Le shell ne pourrait jamais agir sur (ou même voir) vos touches.
Vous pouvez obtenir une liste des combinaisons de touches Ctrl + [?] Actuellement attribuées à partir de stty -a
; cependant, seuls intr
(SIGINT, généralement lié à Ctrl + C) quit
(SIGQUIT, généralement lié à Ctrl + \) et susp
(SIGSUSP, généralement lié à Ctrl + Z) correspondent aux signaux Unix réels. ( kill,
par exemple, n'envoie pas SIGKILL, mais supprime l'entrée actuelle.)
Malheureusement, il n'y a aucun moyen d'envoyer l'un des deux signaux qui ne peuvent pas être désactivés par un processus (SIGKILL et SIGSTOP), donc si les trois signaux mentionnés n'ont aucun effet, vous devrez utiliser une autre méthode ( par exemple un autre shell) pour tuer le processus de premier plan.
(En fait, en plus de capturer les trois signaux, le processus de premier plan peut même désactiver les combinaisons de touches spéciales en premier lieu en définissant le tty en mode "brut". SSH le fait, par exemple - c'est ainsi qu'il peut relayer un Ctrl + C pressé localement sur l'hôte distant.)