gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 00:18:13 26 4
gpt4 key购买 nike

我正在开发一个需要检测系统关闭的应用程序。但是,我还没有找到任何可靠的方法来获取有关此事件的通知。

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

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

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

最佳答案

可能有点晚了。是的,您可以通过调用 runlevel 命令来确定 SIGTERM 是否处于关闭过程中。示例:

#!/bin/bash
trap "runlevel >$HOME/run-level; exit 1" term
read line
echo "Input: $line"

将其另存为 term.sh 并运行它。通过执行 killall term.sh,您应该能够查看和调查主目录中的 run-level 文件。通过执行以下任一操作:

sudo reboot
sudo halt -p
sudo shutdown -P

并比较文件中的差异。然后你应该知道如何去做。

关于c - 如何检测 Linux 上挂起的系统关闭?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2832376/

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