213 votes

Que faire quand Ctrl + C ne peut pas tuer un processus ?

Ctrl + C ne fonctionne pas toujours pour tuer le processus en cours (par exemple, si ce processus est occupé par certaines opérations réseau). Dans ce cas, vous voyez juste "^C" à côté de votre curseur et ne pouvez pas faire grand chose d'autre.

Quel est le moyen le plus simple de forcer ce processus à mourir maintenant sans perdre mon terminal ?

Résumé des réponses : En général, vous pouvez Ctrl + Z pour mettre le processus en veille, et ensuite faire kill -9 _process-pid_ où vous trouvez le pid du processus avec ps et d'autres outils. Sur Bash (et éventuellement d'autres shells), vous pouvez faire kill -9 %1 (ou '%N' en général), ce qui est plus facile. Si Ctrl + Z ne fonctionne pas, vous devrez ouvrir un autre terminal et tuer à partir de là.

4voto

Linker3000 Points 26898

1) Si vous êtes sur la console et en mode multi-utilisateur, vous pouvez appuyer sur CTRL-ALT-Fn et vous connecter sur un autre écran, utilisez ps -ef | grep <myprocessname> ou pidof <myprocessname> et ensuite tuer -9 le processus par numéro d'identification.

2) Si vous êtes connecté à distance, faites de même via une autre session de terminal.

Vous pourriez également vous faciliter la vie en installant htop qui est une version plus polyvalente de top qui vous permet de tuer sélectivement les processus en cours. La plupart des distributions ont htop dans un dépôt.

3) si vous êtes simplement bloqué dans une session ssh suspendue (vers un autre système, par exemple), essayez d'appuyer sur le tilde (~), qui est la touche d'échappement, puis appuyez sur CTRL-Z pour revenir à la session hôte, puis vous pouvez tuer le processus ssh bloqué ou attendre qu'il se termine, ce que la plupart font après une période d'inactivité.

0voto

ospider Points 101

Si vous utilisez tmux ou screen, et que rien de ce qui précède ne fonctionne, vous pouvez toujours tuer le volet en <prefix> x alors le processus est également tué.

0voto

TechNo_phile Points 1

Il y a peut-être un piège avec SIGINT(2) dans votre /etc/profile. Si c'est le cas, supprimez-le. Déconnectez-vous et reconnectez-vous et tout devrait bien se passer.

0voto

Allen Garvin Points 1

Je vous suggère de vérifier vos paramètres d'intrusion avec 'stty -a'. Il est possible de le relier à un autre caractère. Par exemple, aujourd'hui, ce même comportement a commencé à m'arriver, dans un seul xterm, j'ai passé environ 10 minutes à vérifier diverses choses et à regarder l'environnement, avant de taper 'stty -a', et c'est là que j'ai trouvé que ma touche intr était rebondie sur '^E'.

Comment cela est arrivé est un vrai mystère, mais j'ai pu le réparer avec stty intr ^V^C.

Lorsque des touches spéciales ne fonctionnent pas correctement, il est toujours bon de vérifier stty. Il y a quelques années, j'ai dû utiliser un vieux système HP-UX qui liait kill-line au vieux caractère '@' de System V.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X