docs: def _run(self, stdout=subprocess.PIPE):
          '''
          Internal. Starts running this command and those before it. Can only
          be called once.
          :param stdout: Where to send stdout for this link in the chain.
          '''
          assert self._pop is None
          if self._input is not None:
              self._input._run()
  
          cwd = (self._cwd if self._cwd else os.getcwd()) + '/'
  
          def glob_or(expr):
              res = [expr]
              if self._expand and ('*' in expr or '?' in expr):
                  if expr and expr[0] != '/':
                      expr = cwd + expr
                  res = glob.glob(expr)
                  if not res:
                      res = [expr]
              return res
  
          args = [glob_or(arg) for arg in self._args]
          stderr = subprocess.STDOUT if self._err_to_out else None
          assert not self._stdin or self._input is None, "*** ERROR: Stdin must be none outside of head of chain."
          stdin = self._stdin if self._input is None else self._input._pop.stdout
          if stdin is not None and getattr(stdin, 'fileno', None) is None:
              stdin = subprocess.PIPE
          cmd = [self._cmd] + list(itertools.chain.from_iterable(args))
          if self.debug:
              print "*** DEBUG: Run", cmd
          try:
              self._pop = subprocess.Popen(cmd, stdin=stdin, stdout=stdout, stderr=stderr,
                                           close_fds=True, cwd=self._cwd, env=self._env)
              if stdin == subprocess.PIPE:
                  try:
                      # TODO: Write a non-blocking reader-writer to ship data here
                      self._pop.stdin.write(self._stdin.read())
                  except AttributeError:
                      self._pop.stdin.write(self._stdin)
          except OSError:
              print "*** ERROR: %r failed at %r" % (self, self._original_cmd)
              raise