From 23c1dffa101536889dd6bcef198233ee980add7f Mon Sep 17 00:00:00 2001 From: "Sean B. Palmer" Date: Sun, 2 Mar 2008 11:16:25 +0000 Subject: Fixed some .u stuff, added .bytes, and made Ctrl+C work. --- __init__.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to '__init__.py') diff --git a/__init__.py b/__init__.py index 8137683..752fd02 100755 --- a/__init__.py +++ b/__init__.py @@ -7,9 +7,26 @@ Licensed under the Eiffel Forum License 2. http://inamidst.com/phenny/ """ -import sys, time, threading +import sys, os, time, threading, signal import bot +class Watcher(object): + # Cf. http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/496735 + def __init__(self): + self.child = os.fork() + if self.child != 0: + self.watch() + + def watch(self): + try: os.wait() + except KeyboardInterrupt: + self.kill() + sys.exit() + + def kill(self): + try: os.kill(self.child, signal.SIGKILL) + except OSError: pass + def run_phenny(config): if hasattr(config, 'delay'): delay = config.delay @@ -19,6 +36,7 @@ def run_phenny(config): p = bot.Phenny(config) p.run(config.host) + Watcher() while True: connect(config) if not isinstance(delay, int): break -- cgit v1.2.3-1-g7c22