code: def start(self, sockets=None, **kwargs):
          
          stream = sockets or self.sockets()
          pumps = []
  
          if self.interactive:
              pumps.append(io.Pump(io.Stream(self.stdin), stream, wait_for_output=False))
  
          pumps.append(io.Pump(stream, io.Stream(self.stdout), propagate_close=False))
          # FIXME: since exec_start returns a single socket, how do we
          #        distinguish between stdout and stderr?
          # pumps.append(io.Pump(stream, io.Stream(self.stderr), propagate_close=False))
  
          return pumps
docs: start execution