「linux」后台启动nohup经常跟的devnull21是什么意思我们在写启动脚本的时候,会⽤nohup &,这个⼤家都知道,但是经常会有 >/dev/null 2>&1。⽐如
nohup java -jar xxx.jar >/dev/null 2>&1 &
这个到底表⽰什么意思
⼏个基本符号及其含义
/dev/null 表⽰空设备⽂件
0 表⽰stdin标准输⼊
1 表⽰stdout标准输出
2 表⽰stderr标准错误
对于& 1 更准确的说应该是⽂件描述符 1,⽽1标识标准输出,stdout。
对于2 ,表⽰标准错误,stderr。
2>&1 的意思就是将标准错误重定向到标准输出。这⾥标准输出已经重定向到了 /dev/null。那么标准错误也会输出到/dev/null
可以把/dev/null 可以看作"⿊洞". 它等价于⼀个只写⽂件. 所有写⼊它的内容都会永远丢失. ⽽尝试从它那⼉读取内容则什么也读不到.再说2>&1?
在>左边的2,表⽰stderr标准错误。不需要加&
但是在>右边的1必须加&,才表⽰stdout标准输出
linux重定向如果不加&,表⽰的是⽂件名
另外>左边如果不加,默认是1
测试
ls 2>1测试⼀下,不会报没有2⽂件的错误,但会输出⼀个空的⽂件1;
ls xxx 2>1测试,没有xxx这个⽂件的错误输出到了⽂件1中;
ls xxx 2>&1测试,不会⽣成1这个⽂件了,不过错误跑到标准输出了;
ls xxx & 2>&1, 实际上可换成 ls xxx 1& 2>&1;重定向符号>默认是1,错误和输出都传到了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论