docs: def execute(self, processProtocol, command, env={},
                  path=None, uid=None, gid=None, usePTY=0, childFDs=None):
          """Execute a process on the remote machine using SSH
  
          @param processProtocol: the ProcessProtocol instance to connect
          @param executable: the executable program to run
          @param args: the arguments to pass to the process
          @param env: environment variables to request the remote ssh server to set
          @param path: the remote path to start the remote process on
          @param uid: user id or username to connect to the ssh server with
          @param gid: this is not used for remote ssh processes
          @param usePTY: wither to request a pty for the process
          @param childFDs: file descriptors to use for stdin, stdout and stderr
          """
  
          sshCommand = (command if isinstance(command, SSHCommand)
                        else SSHCommand(command, self.precursor, path))
          commandLine = sshCommand.getCommandLine()
  
          # Get connection to ssh server
          connectionDeferred = self.getConnection(uid)
          # spawn the remote process
          connectionDeferred.addCallback(connectProcess, processProtocol,
                                         commandLine, env, usePTY, childFDs)
          return connectionDeferred