Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[dsdp-tcf-dev] Processes.start can NOT run "/bin/ls" on remote machine

Hi guys,

I'm a newbie to TCF and playing with the TCF reference agent and reference client on Ubuntu Linux 10.04 x86_64. I just found that when I use Processes.start to run "/bin/ls" on the remote machine, I can NOT get the "ls" output through the output stream. 

Here is what I did:
1. run the reference agent and client on the same machine.
2. in the client, input the following command:
connect TCP:127.0.0.1:1534
tcf Streams subscribe "Processes"
tcf Processes start "/home/xxx" "/bin/ls" [] [] false
tcf Streams read "VS##" 1000

The Streams.read command did succeed, but read back nothing at all. If I Processes.start other applications, like helloworld or gcc, then I could get the standard output back through the Streams.read command. 

I traced the agent and found my agent used pseudo-terminal interface to redirect the standard output of "ls" process. It turned out that in the "ls" case, the "AsyncReqRead" request failed in read() system call to read back the "ls" output, the errno was 5(EIO). But in other cases, it succeeded. 

I'm wondering if there is something special with "/bin/ls" compared to the helloworld or gcc. Has anyone met the same problem with me? Thanks!

Best Regards,
-Lianhao Lu



Back to the top