Parfois, les processus ignorent le signal SIGINT envoyé par Ctrl-C dans Bash. Par exemple, man
et vi
. En supposant que vous ne vouliez pas google ou lire le manuel sur la façon de quitter le processus en cours, existe-t-il une séquence de touches qui toujours fonctionnera (sans quitter le terminal)?
Envoyer le signal SIGQUIT avec Ctrl+\.
.. $ sleep 10
^\Quit
→ Ceci est équivalent à kill -3 pid
. Les programmes exécutés dans l'espace utilisateur n'ignorent pas sigquit.
Il existe également un ensemble de raccourcis clavier Magic SysRq . Un des plus intéressants est celui-ci: Alt+SysRq+k. Il tue tous les processus de la console virtuelle actuelle. Si l'un de vos ttys est complètement cassé, cela peut être utilisé pour revenir en arrière . Sur le tty sous X.org, il peut être utilisé pour tuer X sans pitié.
La clé SysRq est, sur la plupart des claviers, identique à la touche Imprimer. Sur mon carnet, vous pouvez l'invoquer à l'aide de la touche Fn. C'est à dire. Alt → Fn → Imprimer → k dans cet ordre.
Voici quelques-uns des raccourcis de base de la gestion des processus:
bg
à reprendre en arrière-plan, fg
à lever au premier plan)Remarque: Ctrl+Z, contrairement à Ctrl+C et Ctrl+\, fonctionne également pour man
name__, vi
name__, less
et similaires.
En cas de doute, la procédure suivante fonctionnera presque toujours:
~$ sleep 10
^Z
[5]+ Stopped sleep 10
~$ ps
PID TTY TIME CMD
4804 pts/0 00:00:00 bash
6207 pts/0 00:00:00 sleep
6208 pts/0 00:00:00 ps
~$ kill -9 6207
[5]+ Killed sleep 10
~$
^ Z bien sûr indique que Ctrl+Z a été pressé.
Pour un regard plus en profondeur sur les shells et les terminaux, voir aussi mes réponses sur:
Tu peux essayer Ctrl+\
Parfois le CTRL+C est envoyé au mauvais programme ou canal d’entrée. Ceci est particulièrement fréquent avec les éditeurs tels que vi
, avec des commandes avec une sortie redirigée, des commandes bash complexes impliquant des boucles, etc.
Une solution simple et rapide consiste à suspendre le travail CTRL+Z puis tuez-le par le numéro de travail: kill %1
ou kill -9 %1
, etc.
Essayez l'une de celles-ci:
Ctrl+4
Ctrl+\
Ou:
Ctrl+Z puis lancez:
kill %1
Où %1
est le nombre de travaux renvoyés lorsque vous avez appuyé sur Control-Z. Ajoutez -9
pour forcer la mise à mort.
Lorsque vous êtes dans la console texte, vous pouvez également essayer: Ctrl-SysRq. Le noyau devrait tuer le processus.
Ou SysRq-k, tue tous les processus de la console virtuelle actuelle (peut également tuer les programmes X et svgalib).
Remarque: lorsque les clés magiques SysRq sont utilisées pour tuer un programme graphique gelé, le programme n'a aucune chance de restaurer le mode texte. Cela peut rendre tout illisible.
Pour quitter man, utilisez q
Pour quitter vi utilisez :q
Il est possible que vous ayez modifié le raccourci de copie à partir de:
CTRL+SHIFT+C
À
CTRL+C
De cette façon, lorsque vous essayez de tuer un processus, le CTRL+C ne fonctionne pas.
Essayez de remplacer le raccourci de copie à CTRL+SHIFT+C.