Example #1
0
    def _worker_postfork(self, tmpfd):
        self.log.info("initializing worker")

        if self.worker_uid is not None:
            self.log.info("setting worker uid")
            os.setuid(self.worker_uid)

        if self.worker_gid is not None:
            self.log.info("setting worker gid")
            os.setgid(self.worker_gid)

        if self.readiness_notifier is not None:
            scheduler.end(self.readiness_notifier)

        scheduler.reset_poller()

        if self.original:
            scheduler.schedule(self.worker_inform_ready)

        self.clear_master_signals()
        self.apply_worker_signals()

        for t in self.workers.values():
            t.cancel()
        self.workers = None

        self.log.info("starting health timer")
        self.worker_health_timer(tmpfd)
        self.zombie_checker.cancel()

        self.worker_postfork()
Example #2
0
def background():
    if os.fork():
        sys.exit(0)

    os.setsid()
    sys.argv[0] = os.path.abspath(sys.argv[0])
    os.chdir('/')
    os.umask(0)
    closerange(0, resource.getrlimit(resource.RLIMIT_NOFILE)[0])

    if os.fork():
        sys.exit(0)

    scheduler.reset_poller()
Example #3
0
    def _worker_postfork(self, wid, pid, tmpfd):
        self.log.info("initializing worker")

        with io.File(self.control_path(self.WORKER_PIDFILE % wid), 'w') as fp:
            fp.write(str(os.getpid()))

        if self.worker_gid is not None:
            self.log.info("setting worker gid")
            os.setgid(self.worker_gid)

        if self.worker_uid is not None:
            self.log.info("setting worker uid")
            os.setuid(self.worker_uid)

        if self.readiness_notifier is not None:
            scheduler.end(self.readiness_notifier)

        scheduler.reset_poller()

        if self.original:
            scheduler.schedule(self.worker_inform_ready)

        self.clear_master_signals()
        self.apply_worker_signals()

        for t in self.health_checks.values():
            scheduler.end(t)
        self.workers = None
        self.rev_workers = None
        self.health_checks = None

        self.log.info("starting health timer")
        self.worker_health_timer(tmpfd)
        self.zombie_checker.cancel()

        self.worker_postfork(wid, pid)
Example #4
0
 def setUp(self):
     super(GreenSelectMixin, self).setUp()
     scheduler.reset_poller(self.POLLER())
Example #5
0
 def setUp(self):
     super(GreenSelectMixin, self).setUp()
     scheduler.reset_poller(self.POLLER())