equal
deleted
inserted
replaced
23 import sys |
23 import sys |
24 import os |
24 import os |
25 import select |
25 import select |
26 import errno |
26 import errno |
27 import traceback |
27 import traceback |
|
28 import threading |
28 from os.path import join |
29 from os.path import join |
29 from time import mktime |
30 from time import mktime |
30 from datetime import date, timedelta |
31 from datetime import date, timedelta |
31 from urlparse import urlsplit, urlunsplit |
32 from urlparse import urlsplit, urlunsplit |
32 from cgi import FieldStorage, parse_header |
33 from cgi import FieldStorage, parse_header |
405 from pwd import getpwnam |
406 from pwd import getpwnam |
406 uid = getpwnam(config['uid']).pw_uid |
407 uid = getpwnam(config['uid']).pw_uid |
407 os.setuid(uid) |
408 os.setuid(uid) |
408 root_resource.start_service() |
409 root_resource.start_service() |
409 logger.info('instance started on %s', root_resource.base_url) |
410 logger.info('instance started on %s', root_resource.base_url) |
|
411 # avoid annoying warnign if not in Main Thread |
|
412 signals = threading.currentThread().getName() == 'MainThread' |
410 if config['profile']: |
413 if config['profile']: |
411 import cProfile |
414 import cProfile |
412 cProfile.runctx('reactor.run()', globals(), locals(), config['profile']) |
415 cProfile.runctx('reactor.run(installSignalHandlers=%s)' % signals, |
|
416 globals(), locals(), config['profile']) |
413 else: |
417 else: |
414 reactor.run() |
418 reactor.run(installSignalHandlers=signals) |