命令 nohup service.sh>/dev/null 2>&1 &
- 第一个
nohup
和最后一个&
表示以后台服务挂载运行 service.sh>/dev/null
,其中/dev/null表示一个空设备,就是把service.sh脚本执行的结果重定向到空设备中,即不显示任何信息
2>&1 几个基本符号及其含义
/dev/null
表示空设备文件0
表示stdin标准输入1
表示stdout标准输出2
表示stderr标准错误&
该符号可以理解为引用,&1就是对标准输出的引用
1、
service.sh>/dev/null
相当于执行了service.sh 1>/dev/null
,执行service.s脚本产生的标准输出stdout,重定向到/dev/null的设备文件中。
2、所以,2>&1就是把标准错误stderr重定向到标准输出stdout
拓展几个命令
service.sh > a.log 2>&1
这条命令等价于service.sh 1>a.log 2>&1
,也就是把命令产生的标准输出重定向到a.log文件中,标准错误也重定向到文件a.log中service.sh 2>&1 >a.log
标准输出1指向终端,调用dup将标准错误2指向1的文件表项,此时标准输出还是在终端,因此最终标准错误也会输出到终端
;然后>a.log,此时标准输出又重定向到了a.log文件,所以最终标准输出会输出到文件
。