gpt4 book ai didi

linux - 如何在 Linux 上终止程序之前检测重启

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:10:23 26 4
gpt4 key购买 nike

我想在 Linux 上终止我的程序之前检测到系统正在重新启动。我尝试使用/var/run/utmp 文件来检测运行级别,将 inotify 放在它的更改上,但似乎系统在我收到信号之前正在关闭该程序。如果我使用 telinit 命令设置运行级别,我会用它关闭,但如果我只是用 Ubuntu 右上角的按钮重新启动,则不会。

知道怎么做吗?

最佳答案

捕捉 SIGTERM 信号并快速保存/执行任何操作然后退出。在您收到您无法捕获的 SIGKILL 之前,您有大约 10 秒的时间,并且您将被强制终止。

如果系统没有向您发送 SIGTERM 以允许正常关机,请将您的系统更改为正确的设置,这是执行此操作的标准方法。

有关信号处理,请参阅 man 7 signalman 3 sigaction

(请注意,我不知道检查系统是否正在重启的标准方法,我认为不存在这样的事情。但是如上所述,一个合适的系统向您发送 SIGTERM 并让您进行清理/退出。硬重启除外,因为这几乎等同于拔掉电源线。)

关于linux - 如何在 Linux 上终止程序之前检测重启,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27227310/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com