I am trying to redirect all output from a command line programme to a file. I am using Bash. Some of the output is directed to a the file, but some still appears in the terminal and is not stored to the file.
Similar symptoms are described here:
However I have tried the proposed solution (capture stderr) without success:
<cmd> <args> > stdout.txt 2> stderr.txt
The file stderr.txt is created but is empty.
A possible clue is that the command-line programme is a client communicating with a server on the same machine. It may be that some of the output is coming from the server.
Is there a way to capture all the output from the terminal, irrespective of its origin?
EDIT:
I've confirmed that the missing output is generated by the server. Running the command in a separate terminal causes some output in both terminals, I can pipe all the output from the command terminal to a file. This raises issues about how to capture the server output, but that's a different question.
you can use this syntax to redirect all output stderr and stdout to stdout.txt
<cmd> <args> > allout.txt 2>&1