假设运行命令
xxxxxx.sh >output 2>&1 &
1.将标准输出重定向到output
2 : 2 >&1 将标准错误重定向到标出输出,因为标准输出已经重定向到标准输出,因此也就是将标准错误重定向到标准输出。
为什么需要将标准错误重定向到标准输出的原因,那就归结为标准错误没有缓冲区,而stdout有。这就会导致 >output 和2>output 文件output被两次打开,而stdout和stderr将会竞争覆盖。
大多数情况下执行命令需要在加上nohup,即忽略(SIGHUP)信号