~barry/mailman/events-and-web

« back to all changes in this revision

Viewing changes to src/mailman/runners/rest.py

  • Committer: Barry Warsaw
  • Date: 2011-08-16 02:05:22 UTC
  • Revision ID: barry@list.org-20110816020522-5akqgtmlrxkvlp7m
 * Handle SIGTERM in the REST server so that the test suite always shuts down
   correctly.  (LP: #770328)

(I hope)

Show diffs side-by-side

added added

removed removed

Lines of Context:
44
44
 
45
45
    def run(self):
46
46
        log.info('Starting REST server')
 
47
        # Handle SIGTERM the same way as SIGINT.
 
48
        def stop_server(signum, frame):
 
49
            log.info('REST server shutdown')
 
50
            sys.exit(signal.SIGTERM)
 
51
        signal.signal(signal.SIGTERM, stop_server)
47
52
        try:
48
53
            make_server().serve_forever()
49
54
        except KeyboardInterrupt:
50
55
            log.info('REST server interrupted')
51
 
            sys.exit(signal.SIGTERM)
 
56
            sys.exit(signal.SIGINT)
52
57
        except select.error as (errcode, message):
53
58
            if errcode == errno.EINTR:
54
59
                log.info('REST server exiting')
55
 
                sys.exit(signal.SIGTERM)
 
60
                sys.exit(errno.EINTR)
56
61
            raise
57
62
        except:
58
63
            raise