nohup=no hang up(不挂断)
执行命令:nohup command [Arguments...] [&]
缺省Arguments时,命令的输出会自动输出到nohup.out文件中
用途:不间断的执行command命令
描述:nohup命令运行由command参数和Argument参数指定的命令,忽略所有挂断信号。
与&的区别:&指在后台运行,并没有不挂断的意思,比如当ssh链接断开后,&运行的命令就会终止;nohup也没有后台运行的意思,表示不挂断运行,即使ssh断开,也不会影响其运行。一般将nohup与&连用,将&加到语句末尾表示在后台不挂断的运行。
例如:
sh test.sh &表示将test.sh脚本在后台执行,但当xshell退出时,该命令也就结束运行了
nohup sh test.sh 2>&1 表示不挂断的执行test.sh脚本,关闭标准输入,终端不再能够接收任何输入(标准输入),重定向标准输出和标准错误到当前目录下的nohup.out文件,当xshell退出时,也不会影响该脚本的执行
nohup sh test.sh 2>&1 &表示将test.sh脚本放到后台执行,但是依然可以使用标准输入,终端能够接收任何输入,重定向标准输出和标准错误到当前目录下的nohup.out文件,即使关闭xshell退出当前session依然继续运行
案例:
nohup command > myout.file 2>&1 &
解释:
0-stdin(standard input),1-stdout(standard output),2-stderr(standard error)
2>&1表示将标准错误2重定向到标准输出&1里