This is my understanding about the usage of &, disown and nohup:
<command>: runs the process within the Terminal's currentbashinstance, in the foreground (i.e. the process is listed as abashforeground job andstdin,stdoutandstderrare still bound to the terminal); not immune to hangups;<command> &: runs the process within the Terminal's currentbashinstance, in the background (i.e. the process is listed as abashbackground job andstdin,stdoutandstderrare still bound to the terminal); not immune to hangups;<command> & disown: runs the process within the Terminal's currentbashinstance, in the background, but the process is detached from thebash's jobs' list (i.e. the process is not listed as abashforeground / background job andstdin,stdoutandstderrare still bound to the terminal); immune to hangups;nohup <command> & disown: runs the process within the Terminal's currentbashinstance, in the background, but the process is detached from thebash's jobs' list (i.e. the process is not listed as abashforeground / background job andstdin,stdoutandstderrare not still bound to the terminal);immune to hangups;
So, aside from nohup <command> & disown blocking stdin and redirecting stdout and stderr to nohup.out by default, it seems to me like it can be considered totally equivalent to <command> & disown.
Is the above all correct? Any misconception?