Solution to a problem,write terminal output to file

Chris Angelico rosuav at gmail.com
Tue Dec 9 14:21:43 EST 2014


On Wed, Dec 10, 2014 at 4:11 AM, Robert Clove <cloverobert at gmail.com> wrote:
> I am facing a problem in python coding that is
>
> I have a client server program(programs a re in c code and client and server
> are its executable) on Linux machine.
> To run client i do this ./strace -c client and to run server i type this
> ./strace -c server
>
> When i give ctrl+c to client i see some output on the terminal, i want that
> output in the file i mean i want to send the ctrl+c signal programmatic ally
> to client after a minute and write the output in the file.
>
> if i use subprocess.Popen to execute  ./strace -c client and give ctrl+c
> signal i don''t see any output on the terminal but if i see os.system to
> execute ./strace -c client i see the output on terminal.Now i want to send
> the ctrl+c signal to os.system and write the terminal output into a file.

I'm not entirely sure what you're trying to do here, but strace
produces its output on Standard Error (aka "stderr"). You can simply
redirect that to a file. That's the normal strace program. You might
be running something completely different, since you're running
"./strace"; but I would suggest that it probably uses either stderr or
stdout ("Standard Output"), and you could redirect either or both. Try
this, at the terminal (no Python involved):

./strace -c client >client_out 2>client_err

Then press Ctrl-C, and see which of the files has the output. Based on
that, you could configure subprocess.Popen to send the appropriate
stream to a file.

ChrisA



More information about the Python-list mailing list