Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[ptp-user] Remote execution of bash commands with IRemoteProcessBuilder

I am attempting to execute the following bash command on a remote
system programmatically using RemoteTools:


echo "export ESMFMKFILE=/home/sgeadmin/esmf.mk" >> .profile


Here is the relevant code snippit.


IRemoteServices remoteServices =
RemoteServices.getRemoteServices("org.eclipse.ptp.remote.RemoteTools",
new SubProgressMonitor(monitor,1));

IRemoteConnection remoteConn = ....;  //acquire remote connection

String command = "echo \"export ESMFMKFILE=/home/sgeadmin/esmf.mk\" >>
.profile";
IRemoteProcessBuilder rpb =
remoteServices.getProcessBuilder(remoteConn, command);
IRemoteProcess rp = rpb.start();

while (!rp.isCompleted()) {
   rp.waitFor();
}

// print stdout
System.out.println("\nProcess stdout:");
BufferedReader in = new BufferedReader(new
InputStreamReader(rp.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
    System.out.println(inputLine);
in.close();

//print stderr
System.out.println("\nProcess stderr:");
in = new BufferedReader(new InputStreamReader(rp.getErrorStream()));
while ((inputLine = in.readLine()) != null)
    System.out.println(inputLine);
in.close();



The stderr output of sending the above command is:


Process stderr:
stdin: is not a tty
/bin/bash: echo "export ESMFMKFILE=/home/sgeadmin/esmf.mk" >>
.profile: No such file or directory



Actually, even the simple command "echo hello" returns a similar
error. Upon digging into the RemoteConnection object, I find the
RemoteScript object and the actual command that is sent. It has
undergone some serious character escaping:



echo\ \"export\ ESMFMKFILE\=/home/sgeadmin/esmf.mk\"\ \>\>\ .profile



This escaping is built into RemoteToolsProcessBuilder.

My question is how would I go about executing the above command using
the RemoteToolsProcessBuilder?  What is the intention of the escaping
mechanism?

I (incorrectly) posted this originally to the CDT forum, but I am
redirecting the question to the PTP mailing list.

http://www.eclipse.org/forums/index.php/t/637324/

Thanks!
Rocky


Back to the top