`

(转) nohup /dev/null 2>&1

阅读更多
nohup命令及其输出文件

  nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( n ohang up)。

该命令的一般形式为:nohup command &




ls xxx 1>out.txt 2>&1
nohup /mnt/Nand3/H2000G >/dev/null 2>&1 &
对于& 1 更准确的说应该是文件描述符 1,而1 一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_result ,然后复制标准输出到文件描述符2(STDERR_FILENO),其后果就是文件描述符1和2指向同一个文件表项,也可以说错误的输出被合并了.其中0 表示键盘输入 1表示屏幕输出 2表示错误输出.把标准出错重定向到标准输出,然后扔到/DEV/NULL下面去。通俗的说,就是把所有标准输出和标准出错都扔到垃圾桶里面。
command >out.file 2>&1 &
command >out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。 2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。最后一个& , 是让该命令在后台执行。

试想2>1代表什么,2与>结合代表错误重定向,而1则代表错误重定向到一个文件1,而不代表标准输出;
换成2>&1,&与1结合就代表标准输出了,就变成错误重定向到标准输出.

你可以用
ls 2>1测试一下,不会报没有2文件的错误,但会输出一个空的文件1;
ls xxx 2>1测试,没有xxx这个文件的错误输出到了1中;
ls xxx 2>&1测试,不会生成1这个文件了,不过错误跑到标准输出了;
ls xxx >out.txt 2>&1, 实际上可换成 ls xxx 1>out.txt 2>&1;重定向符号>默认是1,错误和输出都传到out.txt了。
       为何2>&1要写在后面?
       command > file 2>&1
首先是command > file将标准输出重定向到file中, 2>&1 是标准错误拷贝了标准输出的行为,也就是同样被重定向到file中,最终结果就是标准输出和错误都被重定向到file中。
command 2>&1 >file
2>&1 标准错误拷贝了标准输出的行为,但此时标准输出还是在终端。>file 后输出才被重定向到file,但标准错误仍然保持在终端。

用strace可以看到:
1. command > file 2>&1
这个命令中实现重定向的关键系统调用序列是:
open(file) == 3
dup2(3,1)
dup2(1,2)

2. command 2>&1 >file
这个命令中实现重定向的关键系统调用序列是:
dup2(1,2)
open(file) == 3
dup2(3,1)

为什么要用 /dev/null 2>&1 这样的写法.这条命令的意思是将标准输出和错误输出全部重定向到/dev/null中,也就是将产生的所有信息丢弃.下面我就为大家来说一下, command > file 2>file   与command > file 2>&1 有什么不同的地方.
首先~command > file 2>file 的意思是将命令所产生的标准输出信息,和错误的输出信息送到file 中.command   > file 2>file 这样的写法,stdout和stderr都直接送到file中, file会被打开两次,这样stdout和stderr会互相覆盖,这样写相当使用了FD1和FD2两个同时去抢占file 的管道.
而command >file 2>&1 这条命令就将stdout直接送向file, stderr 继承了FD1管道后,再被送往file,此时,file 只被打开了一次,也只使用了一个管道FD1,它包括了stdout和stderr的内容.
从IO效率上,前一条命令的效率要比后面一条的命令效率要低,所以在编写shell脚本的时候,较多的时候我们会用command > file 2>&1 这样的写法.
分享到:
评论

相关推荐

    详解nohup /dev/null 2>&1 含义的使用

    在 `nohup /mnt/Nand3/H2000G >/dev/null 2>&1 &` 这个例子中,`>/dev/null` 表示将标准输出(文件描述符 1)重定向到 `/dev/null`,这是一个特殊的设备文件,任何写入它的数据都会被丢弃,相当于“黑洞”。`2>&1` ...

    详解nohup /dev/null 2&1 含义的使用

    nohup /mnt/Nand3/H2000G >/dev/null 2>&1 & 对 于& 1 更准确的说应该是文件描述符 1,而1 一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_result ,然后复制标准输出到文件描述

    nohup使用方法LINUX|CENTOS

    nohup ganache-cli > /dev/null 2>&1 & 这条命令将 `ganache-cli` 的输出重定向到 `/dev/null`,这样就不会显示输出结果。 nohup 命令的参数解释 * `&`:表示让命令在后台执行。 * `>`:表示输出重定向。 * `2>&1...

    EasyDarwin RTSP 转解码流服务平台 解压版(windows、linux)

    nohup ./ffmpeg -re -stream_loop -1 -i /opt/mp4/cb.mp4 -c copy -f rtsp rtsp://127.0.0.1:554/stream/cb >/dev/null 2>&1 & 如果有防火墙: firewall-cmd --zone=public --add-port=10008/tcp --permanent ...

    kafka-manager-1.3.0.8.zip

    此代码是已经编译好的kafaka的管理端,下载...3、启动,nohup ./kafka-manager -Dconfig.file=../conf/application.conf -Dhttp.port=9001 >/dev/null 2>&1 & 4、在地址栏输入对应的ip:9001即可进入kafka-manager界面。

    Apple_analysis

    输入python3 run.py 启动服务后台挂起进程nohup python3 run.py >/dev/null 2>&1 &nohup python3 text_pre_pro.py >/dev/null 2>&1 &nohup python3 report_cache.py >/dev/null 2>&1 &数据库mysql_host = "0.0.0.0 ...

    linux shell 中 2>1的含义

    nohup /mnt/Nand3/H2000G >/dev/null 2>&1 & 对于& 1 更准确的说应该是文件描述符 1,而1 一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_result ,然后复制标准输出到文件描述符...

    time时间同步(客户端+服务端)-支持Cenos 7

    nohup sh /home/peim/peim_linux/time/time_service.sh >/dev/null 2>&1 & 输入nohup sh /home/peim/peim_linux/time/time_client.sh >/dev/null 2>&1 & linux客户端可同步linux服务端时间 (5s同步一次)

    Linux 运行jar包的几种方式

    第五种方式,`nohup java -jar spring-boot-demo.jar > /dev/null 2>&1 &`,将所有日志输出丢弃。`/dev/null`被称为黑洞设备,任何写入的数据都会被丢弃,而尝试从它那里读取数据将得到空结果。 理解`nohup`和`&`的...

    详解linux下nohup日志输出过大问题解决方案

    例如,`nohup ./execute.sh > /home/xxx/log.log 2>&1 &`会将标准输出和标准错误都重定向到`/home/xxx/log.log`文件中,而不是默认的`nohup.out`。 针对日志文件过大问题,可以采取以下策略: 1. 定期分割日志:...

    JAVA著名免费框架若依前后端分离项目详细部署文档

    在Vue.js项目中,可以修改`vue.config.js`,利用devServer的proxy选项,将API请求代理到后端服务器。 3. **Nginx代理配置**: 在Nginx配置文件中,可以配置反向代理规则,将特定的API请求转发到第三方API服务器。...

    HACMP安装手册.pdf

    nohup /usr/sbin/syncd 60 > /dev/null 2>&1 & nohup /usr/sbin/syncd 10 > /dev/null 2>&1 & ``` - **网络配置:** - 编辑`/etc/rc.net`文件,禁用不必要的网络功能,例如扩展网络统计、IP发送重定向、IP转发等...

    kafka-manager-2.0.0.2-compile.zip

    kafa-manager-2.0.0.2编译版,需要jdk1.8支持,分享 运行启动kafka-manager,默认jdk1.8后面可以省掉 cd kafka-manager/bin ...nohup ./kafka-manager -Dconfig.file=../conf/application.conf >/dev/null 2>&1 &

    大数据框架的部署

    nohup bin/storm supervisor > /dev/null 2>&1 & nohup bin/storm logviewer > /dev/null 2>&1 & ``` **4. 启动作业** 使用以下命令启动Storm作业: ``` storm jar SCBService.jar ...

    yongliangcode#myArticle#草稿Pulsar#4 Pulsar Manager安装1

    下载安装包启动部署nohup ./bin/pulsar-manager > pulsar-manager.log 2>&1 < /dev/null &添加超级用

    mysql数据库CPU高,实时抓住数据库执行中的SQL语句,shell工具(支持mysql5.7)

    mysqlCPU高语句实时监控 ...nohup ./top-mysql-repeat.sh >/dev/null 2>&1 & 如果实时监控,./top-mysql-repeat.sh Ctrl+c退出。 执行后输出txt类别文件。为了看起来更工整,输出xls格式文件。 结果如图所示:

    VOS30002120 Watchdong Service

    $PS -ef|$GREP -v grep|$GREP $NAME >/dev/null 2>&1 case "$?" in 0) # It is running in this case so we do nothing. $NOP ;; 1) echo "$NAME is NOT RUNNING. Starting $NAME and sending notices." $...

    maven-akka-microservice:基于java、maven、springboot、akka的微服务开发原型

    nohup java -jar build/libs/maven-akka-microservice-1.0-SNAPSHOT.jar 1>/dev/null 2>&1 & 视窗 java -jar build/libs/maven-akka-microservice-1.0-SNAPSHOT.jar 1>/dev/null 待定积分 1-包括 WS Akka 支持。 ...

    Linux后台运行java的jar包.docx

    nohup java -jar shareniu.jar > /dev/null 2>&1 & ``` 其中,`> /dev/null`表示将标准输出重定向到“空设备”中,而`2>&1`则是将标准错误输出重定向到与标准输出相同的位置。 #### 方式四:高级输出重定向 **...

    Beego+Vue实现毕业设计校园生活服务平台gcmiss.zip

    Beego+Vue实现毕业设计校园生活服务平台gcmiss.zip 项目介绍 毕业设计校园生活服务网站,集校园交流、失物招领、寻物启事、求人办事、...nohup go run main.go >/dev/null 2>&1 & Nginx配置 恶意请求ip封禁,可参考 ...

Global site tag (gtag.js) - Google Analytics