关于SIGTERM信号

关于SIGTERM信号问 我写了一个后台程序 在系统重启时会做一些保存工作 因此用 signal 对 SIGTERM 进行了处理 测试时让后台程序运行 用命令 kill nbsp 15 nbsp nbsp PID 保存工作运行良好 但是实际测试 我用命令 nbsp reboot 后台进程却不能接收到 SIGTERM 信号 未进行保存工作 nbsp nbsp nbsp 同样都是发送 SIGTERM 信号给进程 kill 和 reboot 为什么处理不一样 请指点 答 找到

问:我写了一个后台程序,在系统重启时会做一些保存工作。因此用signal()对SIGTERM进行了处理。测试时让后台程序运行,用命令kill -15  PID,保存工作运行良好。但是实际测试,我用命令 reboot,后台进程却不能接收到SIGTERM信号,未进行保存工作。 
  同样都是发送SIGTERM信号给进程(kill和reboot),为什么处理不一样?请指点。



答:找到问题的原因了。其实不是信号的问题。 
    如果这个程序脱离任何终端,在后台运行,那么它能接收到SIGTERM信号,并按要求执行。但是我做测试的时候,它是在一个终端上运行程序的,属于此终端的一个子进程。在reboot命令的后,终端先关闭了,此进程随即结束,并未收到SIGTERM信号。 
    具体没查到资料,但是可以猜测几点:reboot命令后发送的SIGTERM信号是按PID从小到大发送的;当父进程接收到SIGTERM信号后,向子进程发送SIGKILL信号立即结束。



后来我用setsid()解决这个问题。代码类似: 

if(fork()>0) 

exit (0);

setsid(); 









可以脱离当前session

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224499.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午11:47
下一篇 2026年3月17日 上午11:47


相关推荐

  • LINUX内核狂想曲之SLOB分配器

    LINUX内核狂想曲之SLOB分配器LINUX 内核狂想曲 CopyLeftbyIC ICandoANyTHi Author nbsp WenHui nbsp WuHanUnivers 2012 5 12Version v1 0LastModifie 2012 5 20SLOB 概述 SLOB SimpleListOf

    2026年3月17日
    2
  • Linux系统管理—linux计划任务和日志的管理

    Linux系统管理—linux计划任务和日志的管理一、计划任务-at-cron-计划任务使用方法计划任务的作用:是做一些周期性的任务,在生产中的主要用来定期备份数据CROND:这个守护进程是为了周期性执行任务或处理等待事件而存在计划任务的安排方式分两种:一种是定时性的,也就是例行。就是每隔一定的周期就要重复来做这个事情一种是突发性的,就是这次做完了这个事,就没有下一次了,临时决定,只执行一次的任务at和crontab这两个命令:at:它是一个可以处理仅执行一次就结束的指令crontab:它是会把你指定的工

    2022年7月13日
    41
  • N8N 教程:零代码构建 AI Agent 实践指南

    N8N 教程:零代码构建 AI Agent 实践指南

    2026年3月15日
    3
  • aero是什么意思啊_自动驾驶视觉算法

    aero是什么意思啊_自动驾驶视觉算法数据集介绍aeroscapes数据集下载链接AeroScapes航空语义分割基准包括使用商用无人机在5到50米的高度范围内捕获的图像。该数据集提供3269张720p图像和11个类别的真实掩码。数据加载dataloder写法(基于pytorch)由于该数据集提供了掩码图,因此不需要进行掩码图转换。下载完成后,文件结构如下:ImageSets文件夹:存放了两个txt文件,划分了训练集和验证集。JPEGImages文件夹:存放了RGB图像。SegmentationClass

    2022年8月15日
    7
  • 3D移动 translate3d

    3D移动 translate3d3D转换我们主要学习工作中最常用的3D位移和3D旋转主要知识点3D移动在2D移动的基础上多加了一个可以移动的方向,就是z轴方向。translform:translateX(100px):仅仅是在x轴上移动 translform:translateY(100px):仅仅是在Y轴上移动 translform:translateZ(100px):仅仅是在Z轴上移动(注意:translateZ一般用px作单位) transform:translate3d(x,y,z):其中x、y、z分别指要移动的

    2025年8月9日
    4
  • ARMv9刷屏——号称十年最大变革,Realm机密计算技术有什么亮点?

    ARMv9刷屏——号称十年最大变革,Realm机密计算技术有什么亮点?作者/乾越编辑/芹菜出品/云巅论剑ARMv9的新闻刷屏了。ARMv9号称十年以来最重大变革,因此让我们看下ARMv9中机密计算相关的新特性Realm。(注:本文是对IntroducingtheConfidentialComputeArchitecture的部分翻译和个人注解,本文图均来自anandtech.com网站。)背景在过去的几年里,我们看到安全问题和硬件安全漏洞已经成为了新闻热点。许多处理器侧信道漏洞,如幽灵、熔毁以及与它们有关的侧通道攻击,都表明…

    2022年6月22日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号