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