nohup 、&、 2>&1 命令分析

nohup的意思是不间断的运行,&的意思是后台运行,2>&1的意思是标准输出和错误输出都重定向到同一个文件。
简单地说nohup运行时即使关掉控制台,它该运行还是运行。
https://blog.csdn.net/liuyanfeier/article/details/62422742讲解的比较透彻,我给他做一点补充
可以参考https://www.jianshu.com/p/747e0d5021a2
nohup 命令分析
先假设一个情况,想要后台运行一个命令怎么办?最好的办法是用&,在命令的结尾加一个&就可以在后台运行了。
&实例解析
假设有一个python程序叫做123.py
代码是这个样子,一直去输出一些东西。
import time
a = 1
while True:
print("start to print sth")
a+=1
print("a=%s" %(a))
time.sleep(2)
如果运行它的话需要python3 123.py,可以把正确的内容重定向到log.txt。这个时候命令就是
python3 123.py > log.txt
- 运行后,控制台一直是这个样子,无法进行其他的操作。
su@DESKTOP-FA1P4IO:~$ python3 123.py >> log.txt
- 后面加一个
&后就可以进行操作别的东西了。
suyuesheng@DESKTOP-FA1P4IO:~$ python3 123.py >> log.txt &
[2] 809
suyuesheng@DESKTOP-FA1P4IO:~$
但是关闭控制台后,即使python3 123.py >> log.txt &后面有&依然会被终止进程。
因为关闭终端后会收到挂断信号。nohup就不会收到挂断信号。
nohup正如名字所声称的,忽略所有发送给子命令的挂断(SIGHUP)信号。
这样所有发给命令的SIGHUP信号都被忽略,命令就不会收到SIGHUP信号。
什么是SIGHUP信号呢?
简单的理解可以是终端结束时,操作系统会发送SIGHUP信号到后台进程。
- 用nohup是这个样子的
su@DESKTOP-FA1P4IO:~$ nohup python3 123.py >> log.txt &
[3] 905
nohup 、&、 2>&1 命令分析的更多相关文章
- MySQL中使用SHOW PROFILE命令分析性能的用法整理(配合explain效果更好,可以作为优化周期性检查)
这篇文章主要介绍了MySQL中使用show profile命令分析性能的用法整理,show profiles是数据库性能优化的常用命令,需要的朋友可以参考下 show profile是由Jerem ...
- nohup: 无法运行命令"java": 没有那个文件或目录
问题 在一个Linux服务器上有shell 脚本如下: nohup java -jar test.jar >> ./nohup.out 2>&1 & 直接执行脚本 s ...
- 利用shell命令分析服务器日志
在没有专业日志分析系统的情况下,我们有时需要对日志进行简单的分析,下面列出一些常用的shell命令分析日志的方法,一定要收藏 1.查看有多少个ip访问 awk '{print $1}' log_f ...
- linux日常常用命令分析
日志处理: 测试网络路由: xargs使用方法: tcpdump命令分析: dd 写入磁盘测试 cpu个数: 查看网卡流量 查看端口联通情况,临时加端口 ntpdate同步: 可以取出变动的密码: 导 ...
- ffmpeg 转码并截图的命令分析
一.转码并截图的命令分析: 1.转码并截图,将码率转换为900Kffmpeg -i E:\\1.MOV -i E:\\123.jpg -filter_complex overlay=W-w -b:v ...
- stress施压案例分析——cpu、io、mem【命令分析】
stress施压命令分析 一.stress --cpu 1 --timeout 600 分析现象?负载为啥这么高?top命令查看用户进程消耗的cpu过高(stress进程消耗的) 分析现象,可以看出 ...
- 使用 Shell 命令 分析服务器日志
文章转载自:https://mp.weixin.qq.com/s/z2qF571m4JSSVi59D7V71g 1.查看有多少个IP访问: awk '{print $1}' log_file|sort ...
- [转] Oracle analyze 命令分析
转自:http://blog.sina.com.cn/s/blog_682841ba0101bncp.html 1.analyze table t1 compute statistics for ta ...
- nohup启动java命令导致dubbo无法注册
没有任何异常,日志和正常注册日志一模一样,但服务就是没注册成功. 解决办法,screen代替nohup命令. screen screen -ls screen -r pid (ctrl + a)+d
随机推荐
- python实现两个两个的翻转字符串
#!/usr/bin/python str = "ABCDEFGH" print(str) lenstr=len(str) print(lenstr) ss='' for i in ...
- Hbase(一)了解Hbase与Phoenix
前言 HBase是一个分布式的.面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”.就像Bigtable利用了Googl ...
- 深入解密来自未来的缓存-Caffeine
1.前言 读这篇文章之前希望你能好好的阅读: 你应该知道的缓存进化史 和 如何优雅的设计和使用缓存? .这两篇文章主要从一些实战上面去介绍如何去使用缓存.在这两篇文章中我都比较推荐Caffeine这款 ...
- Maven 教程(20)— 使用maven-assembly-plugin插件来定制化打包
原文地址:https://blog.csdn.net/liupeifeng3514/article/details/79777976 简单的说,maven-assembly-plugin 就是用来帮助 ...
- Symbol 小妙处
input 框输入后发送异步请求,页面拿到响应进行渲染.但偶尔会遇到问题:响应内容和输入结果不一致.因为 http 无法保证响应到达的顺序. 如何解决呢?提供一个小思路. myRequest.js i ...
- 微信公众号 --- 获取access_token
获取access_token 在左侧菜单栏中也可以找到 可以一步步的进行设置 , 身份验证的时候要 注意:密码是你创建微信公众号的密码 往一步步的执行就可以了 接下来就是获取ip 白名单,进行设置 ...
- SQL语句替换某个字段的部分数据
update `表名` set `字段`= replace(字段, '旧数据', '新数据');
- k8s Helm安装Prometheus Operator
Ubuntu 18 Kubernetes集群的安装和部署 以及Helm的安装完成了k8s的集群和helm的安装,今天我们来看看Prometheus的监控怎么搞.Prometheus Operator ...
- 『正睿OI 2019SC Day6』
动态规划 \(dp\)早就已经是经常用到的算法了,于是老师上课主要都在讲题.今天讲的主要是三类\(dp\):树形\(dp\),计数\(dp\),\(dp\)套\(dp\).其中计数\(dp\)是我很不 ...
- 使用IDEA创建maven父子工程项目
http://www.pianshen.com/article/3070289153/ 第一步: 打开IDEA,点击create new project,如果没有弹出如下界面,就先将打开的项目关闭,然 ...