命令 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文件,所以最终标准输出会输出到文件。
本文详细解析了Linux命令`nohup`和重定向操作,用于后台运行服务脚本并屏蔽输出。`nohup service.sh > /dev/null 2>&1 &`命令中,`nohup`确保脚本在退出终端后继续运行,`>/dev/null`将标准输出重定向至空设备,`2>&1`将标准错误重定向到标准输出,最后的`&`表示后台执行。此外,还介绍了不同重定向组合的使用场景,如将输出重定向至日志文件等。

1006

被折叠的 条评论
为什么被折叠?



