ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

linux nohup xxx > /dev/null 2>&1 &

2022-02-27 19:33:49  阅读:174  来源: 互联网

标签:文件 输出 xxx dev 指令 nohup null


前言

实际上很多时候很容易在服务器环境发现linux nohup xxx > /dev/null 2>&1 &,只不过经常是输出到某个文件而不是/dev/null。实际上很多指令是很好理解的,唯独2>&1很奇特。介绍这些指令的原理。

各个指令

nohupxxx  >  /dev/null>&1  &
nohup指令执行的命令标准输出符仅写入的虚拟硬件stderr标准错误&1的&表示文件描述符,&1的1表示stdout标准输出&单字符表示后台运行

各个指令逐一解析

1. nohup: no hang up(不挂起),hang是悬挂的意思,表示关闭终端tty等,退出账号,进程仍然保持运行,&也有相同的意思,所以一般配合&一起使用。

2. xxx:表示执行的指令

3. > >>:实际上有2种重定向输出符,>表示覆盖写入文件;>>表示追加写入文件。

/dev/null:/dev表示设备文件,因为Linux一切皆文件,null表示这个文件是无意义文件,笔者最开始觉得这个文件是表示不存在的文件,实际上不是的,这个文件是有定义的

 4. 2>&1:这个就涉及shell的设计了

在 shell 中,常用的 FD (file descriptor,文件描述符) 有三个

0 :标准输入(stdin)

1 :标准输出(stdout)

2 :标准错误(stderr)

在标准情况下, 这些文件描述符关联设备: 
stdin(0):       keyboard 键盘输入    返回在前端 
stdout(1):     monitor   正确返回值 输出到前端 
stderr(2):     monitor    错误返回值 输出到前端

其中当> >>等输出重定向符需要输出stdout stderr时需要特别标记文件描述符&,否则会被认为是文件,输入不需要,实际上输入也是可以使用&的,比如&>1.log,表示把标准输出和标准错误输出都重定向到文件1.log中

5. &符号:单个&符号表示后台运行,类似nohup,一般配合nohup使用

总结

linux运行程序一般就会使用上面的命令,来达到后台运行,精确输出重定向的能力,不会因为tty 用户的退出而退出,一般直接运行程序,如果没有特殊处理,是会被ctrl+c,或者终端退出,用户退出而结束进程。

标签:文件,输出,xxx,dev,指令,nohup,null
来源: https://blog.csdn.net/fenglllle/article/details/123167982

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有