From 4be8e9f0eeaa2085b4cd12ecef25fb153ad676ed Mon Sep 17 00:00:00 2001 From: Benoit Chesneau Date: Sat, 30 Jan 2010 02:28:49 +0100 Subject: [PATCH] some fixes. Now we have daemonized mode and pidfile. --- gunicorn/arbiter.py | 6 +++--- gunicorn/main.py | 5 ++--- gunicorn/worker.py | 3 +-- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/gunicorn/arbiter.py b/gunicorn/arbiter.py index e78612ba..8ed31b46 100644 --- a/gunicorn/arbiter.py +++ b/gunicorn/arbiter.py @@ -206,13 +206,13 @@ class Arbiter(object): except StopIteration: break except KeyboardInterrupt: - self.stop(False) + self.stop() sys.exit(-1) except Exception: - self.log.exception("Unhandled exception in main loop.") + self.log.info("Unhandled exception in main loop.") self.stop(False) sys.exit(-1) - + self.stop() self.log.info("Master is shutting down.") if self.pidfile: diff --git a/gunicorn/main.py b/gunicorn/main.py index 643dd1cd..ec3afcd8 100644 --- a/gunicorn/main.py +++ b/gunicorn/main.py @@ -32,7 +32,7 @@ def options(): help='Number of workers to spawn. [%default]'), op.make_option('-p','--pid', dest='pidfile', help='set the background PID FILE'), - op.make_option('-D', '--daemon', dest='daemon', + op.make_option('-D', '--daemon', dest='daemon', action="store_true", help='Run daemonized in the background.'), op.make_option('--log-level', dest='loglevel', default='info', help='Log level below which to silence messages. [%default]'), @@ -57,7 +57,7 @@ def configure_logging(opts): h.setFormatter(logging.Formatter("%(levelname)s %(message)s")) logger.addHandler(h) -def daemonize(logger): +def daemonize(): if not 'GUNICORN_FD' in os.environ: if os.fork() == 0: os.setsid() @@ -105,7 +105,6 @@ def main(usage, get_app): pidfile=opts.pidfile ) - arbiter = Arbiter((host,port), workers, app, **kwargs) if opts.daemon: diff --git a/gunicorn/worker.py b/gunicorn/worker.py index d877ad8c..bd06da97 100644 --- a/gunicorn/worker.py +++ b/gunicorn/worker.py @@ -125,12 +125,11 @@ class Worker(object): break if e[0] == errno.EBADF: if nr >= 0: - return + break raise spinner = (spinner+1) % 2 self._fchmod(spinner) - sys.exit(0) def handle(self, client, addr): util.close_on_exec(client)