MCPcopy
hub / github.com/benoitc/gunicorn / kill_worker

Method kill_worker

gunicorn/arbiter.py:760–781  ·  view source on GitHub ↗

\ Kill a worker :attr pid: int, worker pid :attr sig: `signal.SIG*` value

(self, pid, sig)

Source from the content-addressed store, hash-verified

758 self.kill_worker(pid, sig)
759
760 def kill_worker(self, pid, sig):
761 """\
762 Kill a worker
763
764 :attr pid: int, worker pid
765 :attr sig: `signal.SIG*` value
766 """
767 try:
768 os.kill(pid, sig)
769 # Track kills only on SIGTERM/SIGKILL (actual termination signals)
770 if sig in (signal.SIGTERM, signal.SIGKILL):
771 self._stats['workers_killed'] += 1
772 except OSError as e:
773 if e.errno == errno.ESRCH:
774 try:
775 worker = self.WORKERS.pop(pid)
776 worker.tmp.close()
777 self.cfg.worker_exit(self, worker)
778 return
779 except (KeyError, OSError):
780 return
781 raise
782
783 # =========================================================================
784 # Dirty Arbiter Management

Callers 5

murder_workersMethod · 0.95
manage_workersMethod · 0.95
kill_workersMethod · 0.95
runMethod · 0.45

Calls 2

worker_exitMethod · 0.80
closeMethod · 0.45

Tested by 1