linux nohup xxx > /dev/null 2>&1 &
2022/2/28 7:21:38
本文主要是介绍linux nohup xxx > /dev/null 2>&1 &,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
前言
实际上很多时候很容易在服务器环境发现linux nohup xxx > /dev/null 2>&1 &,只不过经常是输出到某个文件而不是/dev/null。实际上很多指令是很好理解的,唯独2>&1很奇特。介绍这些指令的原理。
各个指令
nohup | xxx | > | /dev/null | 2 | > | &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,或者终端退出,用户退出而结束进程。
这篇关于linux nohup xxx > /dev/null 2>&1 &的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法