I frequently use the program nohup so that my processes are immune to hangups. So if I want to make the program program immune to hangups, I use the command

nohup program &

where & puts the process in the background.

When starting, nohup gives me the message.

nohup: appending output to `nohup.out'

Is there any way to send the output to a file other than nohup.out ? Often I want to run many processes in the same directory using nohup , but if I do this, all the output gets lumped together in a single nohup.out file.

The manual page (for example, here ) does not seem to have an option for specifying the log file. Could you confirm this? What should i do if i need help with this issue?

Best Answer


GNU coreutils nohup man page indicates that you can use normal redirection.

If standard input is a terminal, redirect it from /dev/null. If standard output is a terminal, append output to 'nohup.out' if possible, '$HOME/nohup.out' otherwise. If standard error is a terminal, redirect it to standard output. To save output to FILE, use 'nohup COMMAND > FILE'.

Edit: I didn't read your link at first; you may have a different version of nohup , although this section suggests that you can still use normal redirection.

 nohup.out          The output file of the nohup execution if
                    standard  output is a terminal and if the
                    current directory is writable.

You can redirect standard output and standard error to different files

nohup myprogram > myprogram.out 2> myprogram.err

or to the same file.

nohup myprogram > myprogram.out 2>&1