区别对比
&
是后台运行,表示将命令或脚本放入后台运行。即&方式启动会有进程号,使用ctrl+c程序不会终端,但终端关闭会终端程序
。nohup
是不挂断运行,并没有后台运行的功能,表示用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行。
推荐nohup与&联合使用
# 后台执行test.sh文件,将标准日志输出到output.log文件中,将错误日志也输出到output.log文件中
nohup ./test.sh > output.log 2>&1 &
等同于
nohup ./test.sh > output.log 2>output.log &
">"符号用于将命令的标准输出
重定向到指定的文件中
> outlog.log 表示将终端输出保存到outlog.log文件中
"2>"表示将命令的标准错误
输出重定向到指定的文件中
2>&1 表示将命令的标准错误输出重定向到标准输出1中一起输出
& 后台挂起
2&1
0
表示stdin标准输入,用户键盘输入的内容
1
表示stdout标准输出,输出到显示屏的内容
2