当前位置: 首页 > 面试题库 >

如何在Linux上检测挂起的系统关闭?

吕树
2023-03-14
问题内容

我正在研究需要检测系统关闭的应用程序。但是,我没有找到任何可靠的方式来接收此事件的通知。

我知道在关机时,我的应用会收到一个SIGTERM信号,然后是SIGKILL。我想知道是否有任何方法可以查询a SIGTERM是否
为关机序列的一部分

有谁知道是否有一种以编程方式查询(C API)的方法吗?

据我所知,系统没有提供任何其他方法来查询即将发生的关机。如果确实如此,那也将解决我的问题。我也一直在尝试runlevels,但是更改runlevels似乎是瞬时的,并且没有任何事先警告。


问题答案:

无法确定a SIGTERM是否为关闭序列的一部分。要检测关闭顺序,您可以使用rc.d诸如ereOn和Eric
Sepanson建议的脚本,也可以使用诸如DBus的机制。

但是,从设计的角度来看,SIGTERM即使它不是关闭的一部分,也没有必要忽略它。SIGTERM的主要目的是要 礼貌地要求
应用程序干净退出,如果拥有足够特权的人SIGTERM不希望该应用程序退出,则不太可能发出a 。



 类似资料:
  • 问题内容: 当时间服务器中的系统时间有更新或由于DST更改时,是否有办法得到通知?我正在执行API /系统调用或等效操作。 我的工作之一是在不使用SQL的情况下,将类似于SQL NOW()的值的生成优化为一个小时的粒度。 问题答案: 您可以使用timerfd_create(2)创建一个计时器,然后在设置它时用选项标记它。将其设置为将来不可行的时间,然后在其上进行阻止(使用轮询/选择等)-如果系统时

  • 问题内容: 我试图将自定义行为添加到系统类(FileInputStream / FileOutputStream)。我用以下转换方法编写了自定义ClassFileTransformer: 当我运行示例程序时: 我看到没有系统类没有传递给转换。 有什么办法可以修改系统类?提前致谢! 问题答案: 在调用pre- main方法并添加ClassFileTransformer之前,已经加载了一些(不是全部)

  • 问题内容: 在Linux(X-windows)上安装键盘挂钩以触发某些应用程序的最佳方法是什么?不管运行哪个窗口管理器,有没有办法做到这一点?这样做的想法是,当按某些键(类似于Google桌面与Ctrl- Ctrl的方式)时,会调用一个应用程序(或使其成为前台)。 问题答案: 在根窗口上,是xbindkey的工作方式。不过,请谨慎使用一些其他方法来杀死争夺者,这很烦人,不得不进入某个地方进入自己的

  • 本文向大家介绍linux系统下如何挂载NTFS移动硬盘,包括了linux系统下如何挂载NTFS移动硬盘的使用技巧和注意事项,需要的朋友参考一下 前言 数据迁移是我们经常会遇到的,有时候做大数据量迁移时,为了快速迁移大数据,有可能在Linux服务器上临时挂载NTFS格式的移动硬盘, 一般情况下,Linux是识别不了NTFS格式移动硬盘的(需要重编译Linux核心才能,加挂NTFS分区), 这时候为了

  • 如何在没有GUI干预的情况下自动化整个jprofile过程? 启动jprofiling时,在向客户端提交100个请求之前还是之后? 在Linux系统中安装jprofiler后,我没有找到config.xml(/root/.jprofiler8)。如何创建它? 如何创建没有GUI的会话? 为了分析jprofiler输出,我将在window system上进行复制,并将使用GUI jprofiler。

  • 问题内容: 我正在尝试在我的c程序中检测从Linux关闭或重新启动。我发现程序可以使用signal(SIGTERM,handler)(SIGKILL,handler)。但是,如果用户也使用命令杀死该进程,这两个触发器也会触发。 他们说,在某些解决方案中,可以使用运行级别,但无法运行。在系统初始化运行级别之前,不知道该进程是否被杀死。我什至尝试将脚本放在rcx.d中,但仍然无法正常工作。 有人建议吗