Folgendes quälendes Problem: Ich will einen Thread mit einem Signal (wir reden von Linux hier) unterbrechen, wieso funktioniert folgender Code nicht?
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: utf-8 -*-
import threading
import time
import os
import sys
import signal
print os.getpid()
time.sleep(2)
Running = True
class Process(threading.Thread):
def __init__(self):
self.running = True
threading.Thread.__init__(self)
def run(self):
for iter in range(10):
print iter
if not Running:
print "I break now"
break
time.sleep(1)
def sighup(signal, frame):
Running = False
print " ** sighup **"
signal.signal(signal.SIGHUP, sighup)
my = Process()
my.start()
for iter in ["alpha", "beta", "gamma", "delta", "epsilon", "zeta", "eta", "theta"]:
print iter
time.sleep(1.4)