详解nohup和 区别
一、nohup
nohup 命令运行由 Command参数和任何相关的 Arg参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使用 nohup 命令运行后台中的程序。要运行后台中的 nohup 命令,添加 & ( 表示“and”的符号)到命令的尾部。
nohup 是 no hang up 的缩写,就是不挂断的意思。
nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。
在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中。
1.1案例:
1. nohup command > myout.file 2>&1 &
在上面的例子中,0 – stdin (standard input),1 – stdout (standard output),2 – stderr (standard error) ;
2>&1是将标准错误(2)重定向到标准输出(&1),标准输出(&1)再被重定向输入到myout.file文件中。
2. 0 22 * * * /usr/bin/python /home/pu/download_pdf/download_dfcf_pdf_to_oss.py > /home/pu/download_pdf/download_dfcf_pdf_to_oss.log 2>&1
这是放在crontab中的定时任务,晚上22点时候怕这个任务,启动这个python的脚本,并把日志写在download_dfcf_pdf_to_oss.log文件中
案例2:
nohup python3 -u socket_test.py >my_socket.log 2>&1 &
开启以后会显示 进程ID 后面可以利用这个ID杀死后台进程 忘记了下面也有办法查询
1. 最后一个“&”表示后台运行程序
2. “nohup” 表示程序不被挂起
3. “python3”表示执行python代码
4. “-u”表示不启用缓存,实时输出打印信息到日志文件(如果不加-u,则会导致日志文件不会实时刷新代码中的print函数的信息)
5. “socket_test.py”表示python的源代码文件
6. “my_socket.log”表示输出的日志文件
7. “>”表示将打印信息重定向到日志文件
8. “2>&1”表示将标准错误输出转变化标准输出,可以将错误信息也输出到日志文件中(0-> stdin, 1->stdout, 2->stderr)
ps命令
功能:查看当前的所有进程
也可以单独查询某个文件开启的进程
ps -aux | grep "socket_test.py" #a:显示所有程序 u:以用户为主的格式来显示 x:显示所有程序,不以终端机来区分
Kill命令
功能:杀死进程
kill 30598
二、nohup和&的区别
& : 指在后台运行
nohup : 不挂断的运行,注意并没有后台运行的功能,,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,例如我们断开SSH连接都不会影响他的运行,注意了nohup没有后台运行的意思;&才是后台运行
&是指在后台运行,但当用户推出(挂起)的时候,命令自动也跟着退出
那么,我们可以巧妙的吧他们结合起来用就是
nohup COMMAND &
这样就能使命令永久的在后台执行
例如:
1. sh test.sh &
将sh test.sh任务放到后台 ,即使关闭xshell退出当前session依然继续运行,但标准输出和标准错误信息会丢失(缺少的日志的输出)
将sh test.sh任务放到后台 ,关闭xshell,对应的任务也跟着停止。
2. nohup sh test.sh
将sh test.sh任务放到后台,关闭标准输入,终端不再能够接收任何输入(标准输入),重定向标准输出和标准错误到当前目录下的nohup.out文件,即使关闭xshell退出当前session依然继续运行。
3. nohup sh test.sh &
将sh test.sh任务放到后台,但是依然可以使用标准输入,终端能够接收任何输入,重定向标准输出和标准错误到当前目录下的nohup.out文件,即使关闭xshell退出当前session依然继续运行。
参考链接
https://blog.csdn.net/u011095110/article/details/78666833
https://baike.baidu.com/item/nohup/5683841
详解nohup和 区别相关推荐
- java nohup_详解nohup和 区别
详解nohup和& 区别 2017年11月29日 16:57:38 King-Long 阅读数:7266 版权声明:本文为博主原创文章,欢迎转载. https://blog.csdn.net/ ...
- HTTP - get/post请求详解与本质区别总结
前言 在客户机和服务器之间进行请求.响应时,两种最常被用到的方法是:get和post. get:从指定的资源请求数据(从服务器获取数据) post:向指定的资源提交要被处理的数据(向服务器传送数据) ...
- mysql中utf8和utf8mb4的详解用法与区别
一.简介 MySQL在5.5.3之后增加了这个utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode.好在utf8mb4是utf8的超集,除了将编码改为ut ...
- Mipmap详解(有无Mipmap区别、原理、优点、缺点、优化)
一.先了解纹理过滤 想要了解为什么要使用Mipmap,首先要知道纹理过滤是什么. 当你在玩吃鸡的时候可能会发现一个现象,一个人在距离你5米的地方,可以观察到敌人的一举一 ...
- python中类方法与实例方法的区别-Python实例方法、静态方法和类方法详解(包含区别和用法)...
和类属性一样,类方法也可以进行更细致的划分,具体可分为类方法.实例方法和静态方法. 和类属性的分类不同,对于初学者来说,区分这 3 种类方法是非常简单的,即采用 @classmethod 修饰的方法为 ...
- javascript中match方法和exec()方法详解与深度区别(非原创)
match和exec的比较 1.match match方法属于String正则表达方法. 语法: str.match(regexp或者string) str:要进行匹配的字符串. regexp:一个 ...
- nohup命令及其输出文件 linux nohup命令详解
linux nohup命令详解 nohup命令及其输出文件 nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令.该命令可以在你退出帐户/关闭终 ...
- TCP与UDP的区别(详解)
TCP与UDP的区别(详解) 说区别之前先了解了解这两个协议工作机制以及工作原理 UDP: UDP是一种面向无连接的传输层协议,无法提供可靠的传输服务 通过以上报文格式可以看出UDP报文可以分为UDP ...
- HashTable和HashMap的区别详解
HashTable和HashMap的区别详解 一.HashMap简介 HashMap是基于哈希表实现的,每一个元素是一个key-value对,其内部通过单链表解决冲突问题,容量不足(超过了阀值)时,同 ...
最新文章
- oracle 更改实便例名称,大家好,请教在oracle中能否获取update记录 所涉及的字段的名称?如能实现的话,请教相关实现方法。谢谢~...
- oracle数据库【表复制】insert into select from跟create table as select * from 两种表复制语句区别...
- 详解@EnableEurekaServer和@EnableDiscoveryClient 或 @EnableEurekaClient注解
- mysql DDL语句
- java hashset 源码_Java集合源码分析-HashSet和LinkedHashSet
- RangeAssignor(范围分区)
- BestCoder15 1002.Instruction(hdu 5083) 解题报告
- php screw.so扩展下载,CentOS下安装php加解密工具php
- QString和std::string转换乱码与sqlite存储汉字乱码
- ARCore快速入门--在模拟器(Emulator)上运行AR应用
- fastdb缩小初始生成文件
- excel柱状图自定x轴y轴_《excel柱状图自定x轴y轴》 如何更改EXCEL 图表中X轴的名称...
- 2017年下半年梦想板
- SKETCH 切出背景透明的图标
- iOS开发 - 给Label加下划线、中划线
- 计算机本地用户名称怎么改win10系统,win10系统如何设置本地账户用户名
- modelsim-win64-10.4-se 下载、安装、破解全攻略(屡试不爽)
- [转]列式数据库之infobright以及架构
- codeforces 333B - Chips
- Interview Summary