linux下的SIGINT的作用,linux – SIGINT如何与SIGTERM,SIGQUIT和SIGKILL等..._林叶欣的博客-程序员秘密

技术标签: linux下的SIGINT的作用  

在POSIX系统上,终止信号通常具有以下顺序(根据许多MAN页面和POSIX规范):

> SIGTERM – 礼貌地要求进程终止.它将正常终止,清理所有资源(文件,套接字,子进程等),删除临时文件等.

> SIGQUIT – 更有力的请求.它应该终止不正常,仍然清理绝对需要清理的资源,但可能不会删除临时文件,可能会在某处写入调试信息;在某些系统上也会写入核心转储(无论信号是否被应用程序捕获).

> SIGKILL – 最强有力的要求.甚至没有要求该过程做任何事情,但系统将清理过程,无论是否喜欢.最有可能是编写核心转储.

SIGINT如何适应这张照片?当用户点击CRTL C时,CLI进程通常由SIGINT终止,但是使用KILL实用程序也可以通过SIGINT终止后台进程.我在规范或头文件中看不到的是SIGINT是否比SIGTERM更强或更强,或者SIGINT和SIGTERM之间有任何区别.

更新:

到目前为止我发现的终止信号的最佳描述是在GNU LibC Documentation.它很好地解释了SIGTERM和SIGQUIT之间的预期差异.

它说关于SIGTERM:

It is the normal way to politely ask a program to terminate.

它说关于SIGQUIT:

[…] and produces a core dump when it terminates the process, just like a program error signal.

You can think of this as a program error condition “detected” by the user. […]

Certain kinds of cleanups are best omitted in handling SIGQUIT. For example, if the program

creates temporary files, it should handle the other termination requests by deleting the temporary

files. But it is better for SIGQUIT not to delete them, so that the user can examine them in

conjunction with the core dump.

而SIGHUP也解释得很好. SIGHUP实际上不是终止信号,它只是意味着用户的“连接”已经丢失,因此应用程序不能指望用户读取任何进一步的输出(例如stdout / stderr输出),并且没有输入可以从用户不再.对于大多数意味着他们退出的应用程序.从理论上讲,应用程序还可以决定在收到SIGHUP时进入守护进程模式,现在作为后台进程运行,将输出写入已配置的日志文件.对于已经在后台运行的大多数守护进程,SIGHUP通常意味着他们将重新检查其配置文件,因此您在编辑配置文件后将其发送到后台进程.

但是在这个页面上没有有用的SIGINT解释,除了它是由CRTL C发送的.有没有理由为什么用SIGTERM以不同的方式处理SIGINT?如果是这样,那将是什么原因以及如何处理不同?

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30070961/article/details/116964650

智能推荐

计算机设计大赛国奖作品_2. 报名材料_小白YouCans的博客-程序员秘密

本系列是2021年中国大学生计算机设计大赛作品“环境监测无人机航线优化”的相关文档,获得2021年西北赛区一等奖,国赛三等奖。计算机设计大赛国奖作品_1. 项目概要计算机设计大赛国奖作品_2. 报名材料计算机设计大赛国奖作品_3. 需求分析计算机设计大赛国奖作品_4. 界面设计计算机设计大赛国奖作品_5. 核心算法计算机设计大赛国奖作品_6. 测试报告计算机设计大赛国奖作品_7. 安装使用计算机设计大赛国奖作品_8. 项目总结计算机设计大赛国奖作品_9. PPT

【OpenCV 例程200篇】10. 图像的拼接(np.hstack)_小白YouCans的博客-程序员秘密_np.hstack

9. 图像的拼接用 Numpy 的数组堆叠方法可以进行图像的拼接,操作简单方便。方法说明:retval = numpy.hstack((img1, img2, …)) # 水平拼接retval = numpy.vstack((img1, img2, …)) # 垂直拼接np.hstack() 按水平方向(列顺序)拼接 2个或多个图像,图像的高度(数组的行)必须相同。np.vstack() 按垂直方向(行顺序)拼接 2个或多个图像,图像的宽度(数组的列)必须相同。综合使用 np.hst

UI5-技术篇-SAPUI5创建自定义控件_abbilglf665483的博客-程序员秘密

转载:https://www.nabisoft.com/tutorials/sapui5/creating-custom-controls-in-sapui5   https://sapui5.hana.ondemand.com/#/topic/8dcab0011d274051808f959800cabf9f1.在SAPUI5中创建自定义控件并加载显示。 1...

element plus 树形控件_thingir的博客-程序员秘密

树形控件全部展开收起for(var i=0;i<tree.value.store._getAllNodes().length;i++){ tree.value.store._getAllNodes()[i].expanded=dataSet.isShowAll;}解决办法的文章树形table展开收起//先是两个功能按钮<el-button type="primary" @click="toggleRowExpansion(true)" icon="el-icon-arro

Lotus Notes客户端连接Domino服务器报错:意想不到的TCP/IP错误_iteye_15219的博客-程序员秘密

今日遇到一个Notes客户端连接Domino服务器的故障——意想不到的TCP/IP连接错误。 运行环境:winXP SP2 + Lotus Notes R5.0.9中文版 现象:用户使用Notes客户端收发邮件有一段日子了。但今天由于出现其他的故障,管理员重新安装了Lotus Notes客户端。安装之后启动notes即报错。以不连接Domino服务器方式配置客户端之后,...

随便推点

史上最简单的Elasticsearch教程-第一章:初识Elasticsearch_李时珍皮啊的博客-程序员秘密

Elasticsearch的初级使用:(提前声明:文章由作者:张耀峰结合自己生产中的使用经验整理,最终形成简单易懂的文章,写作不易,转载请注明)(文章参考:Elasticsearch权威指南,Spark快速大数据分析文档,Elasticsearch官方文档,实际项目中的应用场景)(帮到到您请点点关注,文章持续更新中!)Git主页https://github.com/My...

音视频开发相关工具整理_幽雨雨幽的博客-程序员秘密

1. 转码 ffmpeg2.qt-faststart功能:调整 mp4文件信息的moov atom元数据在mp4中的位置 路径:ffmpeg-3.4.2/tools qt-faststart源文件名目标文件名3.yamdiLinux下使用yamdi为flv视频添加关键帧...

Android 开发时遇到的坑_清闲茶叶的博客-程序员秘密

1.创建文件时选择了c++时遇到这个错误Error:executing external native build for cmake D:\dev\testcode\MayApplication\app\CMakeLists.txt解决办法:在build.gradle 里加上下面***中间这段android { compileSdkVersion 25 buildToolsVer...

代码优化 5 大原则,第一条就是别优化了!!!_Java技术栈的博客-程序员秘密

Java技术栈www.javastack.cn打开网站看更多优质文章“让这代码跑得快一点!!”——我碰到的第一件代码优化任务就是这么开始的。那个项目是一个巨大的 SAP 云平台应用程序,...

java怎么将数字拆分_java – 将Integer拆分成数字的最快方法是什..._三十六陂的博客-程序员秘密

警告.这里涉及一些问题.事实上,有两个问题混合在一起:>如何以相反的顺序将数据从一个列表传输到另一个列表?>如何从BigInteger创建数字列表?我同意comment by Roman C:“从一个列表移到另一个列表是没用的”.至少,在这种情况下似乎没用.但是如果tempList发生了某些事情,并且从一个列表中删除元素并将它们添加到另一个列表(逐个)的一般方法以任何方式都是合理的,那...

自动化集成测试之解放程序员的利器_蓁蓁啊的博客-程序员秘密

程序猿思维:能用工具解决的事绝不能动手!!!1.什么是CI/CD?CI (Continuous Integration):持续集成持续集成是指程序开发者将代码块推送到Git远程仓库时,每次Push或Merge都将触发并运行一系列脚本来构建、测试和验证提交的代码,验证通过后合并到仓库分支中。**CD (Continuous Deployment) **:持续部署持续部署是持续集成的下一步动作,即通过CI方式成功将代码合入指定仓库后,再将应用程序部署到生产环境的一系列动作。CI/.

推荐文章

热门文章

相关标签