Linux nohup和的功效

Linux nohup和&的功效

https://www.cnblogs.com/laoyeye/p/9346330.html

这是我转载的文章,写的很好,

nohup Command [ Arg ... ] [ & ]

&:进程后台执行

不挂断地运行命令。no hangup的缩写,意即“不挂断”

例如:nohup java -jar aa.jar & //aa.jar包就不会被contrl+c终止,&是可以在后台执行

 

 

nohup和&究竟有啥区别?不少同学进行了回复,但并不是所有同学都理解得全对,今天把自己挖的坑自己填了。

测试代码如下:

是一个输出hello与循环轮数的死循环程序,每输出一行就休眠1秒。

使用 ./a.out 前台运行程序,会是什么效果呢?

程序每隔一秒会在终端输出一个字符串。

此时如果键入Ctrl+C ,程序会收到一个SIGINT信号,如果不做特殊处理,程序的默认行为是终止(如上图)。

使用 ./a.out& 后台运行程序,会是什么效果呢?

如上图:

  • 首先会在终端显示进程号是32389

  • 键入Ctrl + C,发出SIGINT信号,程序会继续运行

ps确认一下,确认进程依然在运行,进程号是32389。

此时如果关掉session,程序会收到一个SIGHUP信号,此时会怎么样呢?

ps再次确认,可以看到关闭session之后,进程号是32389的a.out进程也关闭了。

使用nohup ./a.out 又会是什么效果呢?

使用nohup 运行程序a.out,会发现:

  • 前台没有出现进程号

  • 有一个“忽略输入,输出至nohup.out”的提示

  • hello的输出也没有出现在前台

手动ps看进程号,这次a.out的进程号是32437。

此时如果关掉session,程序会收到一个SIGHUP信号,程序会不会关闭呢?

关掉session后,再次ps看一下,ID为32437的a.out进程还在。

这些只能通过kill把程序干掉了,killall之后,ps查看进程已经关闭。

killall之后,查看发现多了一个nohup.out文件,不过这个文件的大小是0,有点奇怪,启动程序的时候,明明提示了“appending output to nohup.out”呀,先把问题遗留在这,测试一下Ctrl +C。

仍如上图,使用nohup启动a.out,如果键入Ctrl+C ,程序收到SIGINT信号后,直接关闭了。

最后测试一下nohup和&同时使用,即用nohup./a.out &运行程序,又会是什么效果呢?

使用nohup ./a.out &运行程序后,可以看到:

  • 会在终端显示进程号是32524

  • 也会有一个“忽略输入,输出至nohup.out”的提示

键入Ctrl + C,发送SIGINT信号,似乎没反应。

关闭session,发送SIGHUP信号,再来看看。

ID为32524的进程依然存在,后续也只能用kill来关闭它。

结论

使用&后台运行程序:

  • 结果会输出到终端

  • 使用Ctrl + C发送SIGINT信号,程序免疫

  • 关闭session发送SIGHUP信号,程序关闭

使用nohup运行程序:

  • 结果默认会输出到nohup.out

  • 使用Ctrl + C发送SIGINT信号,程序关闭

  • 关闭session发送SIGHUP信号,程序免疫

平日线上经常使用nohup和&配合来启动程序

  • 同时免疫SIGINT和SIGHUP信号

同时,还有一个最佳实践:

  • 不要将信息输出到终端标准输出,标准错误输出,而要用日志组件将信息记录到日志里

本文转载自微信公众号:架构师之路,因为老找不到地址,做下记录~

转载于:https://www.cnblogs.com/handsome1013/p/11088064.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/263685.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

获取手机通讯录跟sim卡通讯录

/** 获取库Phone表字段 **/ private static final String[] PHONES_PROJECTION new String[] { Phone.DISPLAY_NAME, Phone.NUMBER }; private List<ContactsModel> contactsModels new ArrayList<ContactsModel>(); /** 得到手机通讯录联系人信息 **/ …

如何去掉ECShop 2.7.2中的Powered by ECShop字符

1.去掉标题上Powered by ECShop的字样如下: 在includes/lib_main.php找到lib_main.php文件,打开后,找到136行,将$page_title $GLOBALS[’_CFG’][’shop_title’] . ‘ – ‘ . ‘Powered by ECShop’ ;改为$page_title $GLOBALS[’_CFG’][’shop_title’] ;当然, . ‘ – ‘…

proguard android 配置,android – Proguard忽略库的配置文件

我现在面对一个非常奇怪的问题吗&#xff1f;我有一个具有两个模块的Gradle应用程序&#xff0c;一个主要模块和一个库模块。>在两个模块中&#xff0c;我已经声明了一个正确的proguard-rules.pro文件路径>在两个.gradle文件中我有minifyEnabled为true这是第一个问题&…

MySql Workbench 安全模式(safe mode)

默认情况下&#xff0c;MySql WorkBench 的安全模式是打开的&#xff0c;即&#xff1a;update、delete语句必须带 where 条件字句&#xff0c;单条记录更新或删除。 如果关闭安全模式&#xff08;safe mode&#xff09;&#xff1a; 菜单栏&#xff1a;编辑(Edit) ---> 个…

Hark的数据结构与算法练习之希尔排序

算法说明 希尔排序是插入排序的优化版。 插入排序的最坏时间复杂度是O(n2)&#xff0c;但如果要排序的数组是一个几乎有序的数列&#xff0c;那么会降低有效的减低时间复杂度。 希尔排序的目的就是通过一个increment&#xff08;增量&#xff09;来对数列分组进行交换排序&…

13 个超炫的 Conky 配置

Conky 是一款桌面美化及系统信息监控软件&#xff0c;有着很强的自定义性&#xff0c;如果你熟悉的话可以配置出各类不同效果的界面&#xff0c;而下面列出了 13 个超炫的 Conkey 配置&#xff0c;你可以尝试其中之一。 Bionic Conky&#xff1a; Hi-Tek Conky&#xff1a; Con…

android 播放声音 停止其他,Android AudioManager处理两个播放器同时有声音,停止其中一个播放的问题,暂停其他的播放...

尽管某个时刻只有一个activity可以运行&#xff0c;Android却是一个多任务环境&#xff0e;这对使用音频的应用带来了特殊的挑战&#xff0c;因为只有一个音频输出而可能多个媒体都想用它&#xff0e;在Android2.2之前&#xff0c;没有内建的机制来处理这个问题&#xff0c;所以…

数据仓库定义

数据仓库&#xff08;Data Warehouse&#xff09;是一个面向主题的&#xff08;Subject Oriented&#xff09;、集成的&#xff08;Integrated&#xff09;、相对稳定的&#xff08;Non-Volatile&#xff09;、反映历史变化&#xff08;Time Variant&#xff09;的数据集合&…

C# 操作 Word 修改word的高级属性中的自定义属性

为 Microsoft Word 创建自动化客户端 启动 Visual Studio .NET。在文件菜单上&#xff0c;单击新建&#xff0c;然后单击项目。从 Visual C# 项目类型中选择 Windows 应用程序。默认情况下会创建 Form1。添加对 Microsoft Word 对象库的引用。为此&#xff0c;请按照下列步骤操…

大型门户网站的可伸缩性架构设计

大型门户网站的可伸缩性架构设计2009-12-28 来源&#xff1a;网络我们知道&#xff0c;对于一个大型门户网站来说&#xff0c;可伸缩性是非常重要的&#xff0c;怎么样在纵向和横向有良好的可伸缩性&#xff0c;就需要在做架构设计的时候考虑到一个分的原则&#xff0c;我想在多…

html中dd dt的效果,html中dt dd

html中&#xff0c;dl,dt,dd怎么使用html中,dl和dd和dt标签是什么意思,什么时候需要用定义列表的意思 一般用在图文并排的时候 应网友提问。html中&#xff0c;dl和dd和dt标签是什么意思&#xff0c;什么时候需要html中&#xff0c;dl和dd和dt标签的意思如下&#xff1a;dl标签…

mysql存储引擎优化参数

MySQL配置参数优化本文来自道森学习笔记&#xff0c;版权归 http://wubx.net/ 所有MyISAM存储引擎优化涉及参数如下&#xff1a;Key_buffery_sizeConcurrent_insert 2 | WAAYSBulk_insert_buffer_size8MMyisam_recover_optionsFORCEMyisam_recover_threads1Myisam_sort_buffer…

实现 laravel 的artisan

laravel 的 artisan 命令行太好用了&#xff0c;换个框架没有这个功能&#xff0c;于是自己学习实现一些&#xff0c;直接上代码 新建目录 -artisan --bin --src 进入artisan composer init composer require symfony/console #!/usr/bin/env php<?phpuse Symfony\Comp…

cdev 结构体与字符设备的注册

在 linux 2.6内核中&#xff0c;使用 cdev结构体描述字符设备&#xff0c;cdev 的定义在 <linux/cdev.h> 中可找到&#xff0c;其定义如下&#xff1a;引用 struct cdev { struct kobject kobj; struct module *owner; const struct file_operation…

JVM调优总结(七)-典型配置举例1

以下配置主要针对分代垃圾回收算法而言。 堆大小设置 年轻代的设置很关键 JVM中最大堆大小有三方面限制&#xff1a;相关操作系统的数据模型&#xff08;32-bt还是64-bit&#xff09;限制&#xff1b;系统的可用虚拟内存限制&#xff1b;系统的可用物理内存限制。32位系统下&am…

Nginx多种负载均衡策略搭建

背景介绍 上篇介绍了利用Nginx反向代理实现负载均衡&#xff0c;本文详细讲述Nginx下的几种负载均衡策略。 轮询 轮询&#xff0c;顾名思义&#xff0c;就是轮流请求&#xff0c;基于上篇文章的介绍&#xff0c;我们将负载均衡策略聚焦于default.conf文件的upstream。 upstream…

基于GCCAVR的TLC2543读写程序----模拟SPI方式实现

TLC2453的操作也比较简单&#xff0c;通过模拟的方式实现只需要看一下时序图把时序搞对即可。 在硬件SPI中&#xff0c;读和写实可以通过硬件同步进行的&#xff0c;因此在写入本次命令字时可以同时读取上一次命令的数据&#xff0c;在模拟SPI的方式中&#xff0c;读和写无法同…

html设置点击事件相同,html有多个类名相同的div,如何给每个div绑定click事件并区分?...

1.页面有9个div&#xff0c;类名都是.flag&#xff0c;然后想给每个div都绑定一个click事件&#xff0c;点击.flag时&#xff0c;获取其后代元素.count的值和.ds-subtitle的rel属性。下面这样的写法请问哪里出错了&#xff1f;请看开始三行后面注释$(document).ready(function(…

利用Apache POI读取并解析Excel的数据

/* * Created on 2010-12-9 * java读取excel文件 * */import java.io.FileInputStream;import java.io.FileOutputStream;//import java.text.DecimalFormat; import org.apache.poi.hssf.usermodel.HSSFCell;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.…

计算机语言学 考研学校,2019考研专业:语言学及应用语言学

中国教育在线讯 2019考研&#xff0c;对考研专业了解越多&#xff0c;考研人越易选出适合自己的方向&#xff0c;中国教育在线考研频道将陆续推出2019考研业解析系列&#xff0c;进行基本的专业介绍&#xff0c;探析就业前景与方向&#xff0c;推荐知名院校&#xff0c;介绍相近…