The script is:
nohup/mnt/nand3/h2000g >/dev/null 2>&1 &
For & 1 More accurate should be the file descriptor 1, and 1 is generally representative of Stdout_fileno, in fact, this operation is a dup2 (2) call. He standard output to All_result, and then copy the standard output to the file descriptor 2 (stderr_ Fileno), the consequence is that file descriptors 1 and 2 point to the same file table entry, or the wrong output is merged. where 0 means keyboard input 1 means that the screen output 2 indicates an error output. REDIRECT standard error to standard output, and then throw it under/dev/null. In layman's words, all standard output and standard errors are thrown into the trash.
Command >out.file 2>&1 &
Command >out.file redirects the command output to the Out.file file, which means that the output is not printed to the screen, but is output to the Out.file file. 2>&1 is redirecting standard errors to standard output, where the standard output has been redirected to the Out.file file, and the standard error is output to the Out.file file. The last & is to have the command execute in the background.
Imagine what 2>1 stands for, the combination of 2 and > represents error redirection, while 1 represents the error redirection to a file 1, not the standard output;
Replacing 2>&1,& with 1 represents the standard output, which becomes an error redirect to the standard output.
You can use
LS 2>1 test, will not report the error of No 2 file, but will output an empty file 1;
ls xxx 2>1 test, no xxx This file error output to 1;
ls xxx 2>&1 test, will not generate 1 of this file, but the error ran to the standard output;
ls xxx >out.txt 2>&1, actually can be replaced with ls xxx 1>out.txt 2>&1; redirect symbol > default is 1, error and output are uploaded to OUT.txt.
Why 2>&1 to write in the back?
Command > File 2>&1
The first is command > file to redirect the standard output to file, 2>&1 is the standard error copy of the standard output behavior, which is also redirected to file, the end result is that the standard output and errors are redirected to file.
Command 2>&1 >file
The 2>&1 standard error copies the behavior of the standard output, but at this point the standard output is still in the terminal. The output is redirected to file after >file, but the standard error remains at the terminal.
With Strace you can see:
1. Command > File 2>&1
The key system call sequences that implement redirection in this command are:
Open (file) = = 3
Dup2 (3,1)
Dup2 (ON)
2. Command 2>&1 >file
The key system call sequences that implement redirection in this command are:
Dup2 (ON)
Open (file) = = 3
Dup2 (3,1)
Consider what kind of file-sharing structure the different dup2 () call sequences will produce. Please refer to Apue 3.10, 3.12
What "2>&1" means in a Linux shell