I'm developing a program that runs using an asyncore loop. Right now I can adequately terminate it using Control-C, but as things get refined I need a better way to stop it. I've developed another program that executes it as a child process using popen2.Popen4(). I was attempting to use signals to stop it (using os.kill()) but I keep running into a problem where sending the signal causes an infinite loop of printing the message "warning: unhandled exception". This message appears to be coming from asyncore.py.
Searching online I've found this old post that describes setting up a signal handler using signal.signal(): http://mail.python.org/pipermail/medusa-dev/2000/000571.html I've tried it but I don't see any indication that my handler method is being called. My best guess is that something somewhere else is overriding my signal handling callbacks and sending the signals elsewhere until they make their way into asyncore where they cause the error message. Any other ideas on how to get this to work? If there's a different signal I can use that other code won't override, that's fine (I don't care what the signal is, as long as I can catch it). Or perhaps there is something different I can do? The program, at present, doesn't have much in the way of an internal shutdown mechanism. I'm using Python 2.5.1 on Fedora 8; the program does not need to be portable to Windows. - David (p.s. please post replies on the list; this email address doesn't work so I won't see any replies sent directly to me) -- http://mail.python.org/mailman/listinfo/python-list