code: def is_running(self):
          
          pp = self.pid
          if pp:
              try:
                  proc = psutil.Process(pp)
  
                  # Possible status:
                  # "STATUS_RUNNING", "STATUS_IDLE",
                  # "STATUS_SLEEPING", "STATUS_DISK_SLEEP",
                  # "STATUS_STOPPED", "STATUS_TRACING_STOP",
                  # "STATUS_ZOMBIE", "STATUS_DEAD",
                  # "STATUS_WAKING", "STATUS_LOCKED",
  
                  if proc.status in (psutil.STATUS_STOPPED,
                                     psutil.STATUS_DEAD,
                                     psutil.STATUS_ZOMBIE):
                      # The PID is still in the process table so call stop to
                      # remove the PID.
                      self.stop()
                      return False
                  else:
                      # OK, it's running.
                      return True
  
              except psutil.NoSuchProcess:
                  pass
          return False
docs: True if the subprocess is running.
  
          If it's a zombie then we call
          :func:`desub.Desub.stop` to kill it with fire and return False.