def write(self, chars): if self.write_error: raise OSError(self.write_error) self.stdin_buffer += chars def transition(self): self.transitioned = True def __eq__(self, other): return self.config.priority == other.config.priority def __lt__(self, other): return self.config.priority < other.config.priority DummyProcess = total_ordering(DummyProcess) class DummyPConfig: def __init__(self, options, name, command, directory=None, umask=None, priority=999, autostart=True, autorestart=True, startsecs=10, startretries=999, uid=None, stdout_logfile=None, stdout_capture_maxbytes=0, stdout_events_enabled=False, stdout_logfile_backups=0, stdout_logfile_maxbytes=0, stderr_logfile=None, stderr_capture_maxbytes=0, stderr_events_enabled=False, stderr_logfile_backups=0, stderr_logfile_maxbytes=0, redirect_stderr=False, stopsignal=None, stopwaitsecs=10, stopasgroup=False, killasgroup=False, exitcodes=(0,2), environment=None, serverurl=None): self.options = options
msg = ('entered FATAL state, too many start retries too ' 'quickly') logger.info('gave up: %s %s' % (self.config.name, msg)) elif state == ProcessStates.STOPPING: time_left = self.delay - now if time_left <= 0: # kill processes which are taking too long to stop with a final # sigkill. if this doesn't kill it, the process will be stuck # in the STOPPING state forever. self.config.options.logger.warn( 'killing %r (%s) with SIGKILL' % (self.config.name, self.pid)) self.kill(signal.SIGKILL) Subprocess = total_ordering(Subprocess) class FastCGISubprocess(Subprocess): """Extends Subprocess class to handle FastCGI subprocesses""" def __init__(self, config): Subprocess.__init__(self, config) self.fcgi_sock = None def before_spawn(self): """ The FastCGI socket needs to be created by the parent before we fork """ if self.group is None: raise NotImplementedError('No group set for FastCGISubprocess') if not hasattr(self.group, 'socket_manager'):