示例#1
0
    def reexec(self):
        """\
        Relaunch the master and workers.
        """
        if self.pidfile is not None:
            self.pidfile.rename("%s.oldbin" % self.pidfile.fname)

        self.reexec_pid = os.fork()
        if self.reexec_pid != 0:
            self.master_name = "Old Master"
            return

        os.environ['GUNICORN_FD'] = str(self.LISTENER.fileno())
        os.chdir(self.START_CTX['cwd'])
        self.cfg.pre_exec(self)
        util.closerange(3, self.LISTENER.fileno())
        util.closerange(self.LISTENER.fileno()+1, util.get_maxfd())
        os.execvpe(self.START_CTX[0], self.START_CTX['args'], os.environ)
示例#2
0
文件: arbiter.py 项目: acdha/gunicorn
    def reexec(self):
        """\
        Relaunch the master and workers.
        """
        if self.pidfile is not None:
            self.pidfile.rename("%s.oldbin" % self.pidfile.fname)

        self.reexec_pid = os.fork()
        if self.reexec_pid != 0:
            self.master_name = "Old Master"
            return

        os.environ['GUNICORN_FD'] = str(self.LISTENER.fileno())
        os.chdir(self.START_CTX['cwd'])
        self.cfg.pre_exec(self)
        util.closerange(3, self.LISTENER.fileno())
        util.closerange(self.LISTENER.fileno()+1, util.get_maxfd())
        os.execvpe(self.START_CTX[0], self.START_CTX['args'], os.environ)
示例#3
0
    def reexec(self):
        """\
        Relaunch the master and workers.
        """
        if self.pidfile is not None:
            self.pidfile.rename("%s.oldbin" % self.pidfile.fname)

        self.reexec_pid = os.fork()
        if self.reexec_pid != 0:
            self.master_name = "Old Master"
            return

        fds = [l.fileno() for l in self.LISTENERS]
        os.environ['GUNICORN_FD'] = ",".join([str(fd) for fd in fds])

        os.chdir(self.START_CTX['cwd'])
        self.cfg.pre_exec(self)

        # close all file descriptors except bound sockets
        util.closerange(3, fds[0])
        util.closerange(fds[-1] + 1, util.get_maxfd())

        os.execvpe(self.START_CTX[0], self.START_CTX['args'], os.environ)
示例#4
0
    def reexec(self):
        """\
        Relaunch the master and workers.
        """
        if self.pidfile is not None:
            self.pidfile.rename("%s.oldbin" % self.pidfile.fname)

        self.reexec_pid = os.fork()
        if self.reexec_pid != 0:
            self.master_name = "Old Master"
            return

        fds = [l.fileno() for l in self.LISTENERS]
        os.environ['GUNICORN_FD'] = ",".join([str(fd) for fd in fds])

        os.chdir(self.START_CTX['cwd'])
        self.cfg.pre_exec(self)

        # close all file descriptors except bound sockets
        util.closerange(3, fds[0])
        util.closerange(fds[-1] + 1, util.get_maxfd())

        os.execvpe(self.START_CTX[0], self.START_CTX['args'], os.environ)