133 votes

Impossible de tuer le script de Python avec Ctrl-C

Je teste le threading de Python avec le script suivant :

import threading

class FirstThread (threading.Thread):
    def run (self):
        while True:
            print 'first'

class SecondThread (threading.Thread):
    def run (self):
        while True:
            print 'second'

FirstThread().start()
SecondThread().start()

Il fonctionne avec Python 2.7 sur Kubuntu 11.10. Ctrl + C ne le tuera pas. J'ai également essayé d'ajouter un gestionnaire de signaux système, mais cela n'a pas aidé :

import signal 
import sys
def signal_handler(signal, frame):
    sys.exit(0)
signal.signal(signal.SIGINT, signal_handler)

Pour tuer le processus, je le tue par PID après avoir envoyé le programme en arrière plan avec Ctrl + Z ce qui n'est pas ignoré. Pourquoi est-ce que Ctrl + C d'être ignoré de façon si persistante ? Comment puis-je résoudre ce problème ?

0 votes

@dotancohen fonctionne-t-il sous Windows ?

0 votes

@vitaibian : Je n'ai pas testé sous Windows, mais cela semble ne pas être spécifique à l'OS.

0voto

user1147688 Points 391

Je vous suggère de jeter un coup d'œil à la question très similaire : Arrêter python en utilisant ctrl+c . Cela répondra à votre question et vous donnera également de nombreux détails utiles sur d'autres clés et signaux à utiliser.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X