def run(self, command, env={}, path=None,
            uid=None, gid=None, usePTY=0, childFDs=None):
        """Execute a command and return the results of the completed run.
        """
        deferred = defer.Deferred()
        processProtocol = _SummaryProcessProtocol(deferred)
        d = defer.maybeDeferred(self.execute, processProtocol, command, env,
                                path, uid, gid, usePTY, childFDs)
        d.addErrback(deferred.errback)
        return deferred