gpt4 book ai didi

linux - 我的 Linux 程序如何在不修改任何系统配置文件的情况下获得计算机即将进入休眠状态的通知?

转载 作者:太空狗 更新时间:2023-10-29 12:15:04 25 4
gpt4 key购买 nike

我写了一个 Linux 程序来创建一些持久的 TCP 连接,我希望我的程序在 Linux 计算机进入休眠状态之前关闭()那些 TCP 套接字,这样远程对等端就不会留下非-响应式“僵尸”TCP 连接。

根据 this回答,一种方法是修改/etc/pm/sleep.d 文件来运行一个特殊的通知应用程序,但我不想那样做,因为修改系统配置文件是有风险的(而且在很多情况下如果我的程序没有这样做的权限,则不可能。

Windows 和 MacOS/X 有用于此类事情的基于 C 的通知 API; Linux 领域有类似的东西吗?

最佳答案

您可以使用 systemd-logind一个管理用户登录并提供 C 库接口(interface)和 D-Bus 的微型守护进程界面。您可以订阅以下信号:

The PrepareForShutdown() resp. PrepareForSleep() signals are sent right before (with the argument True) and after (with the argument False) the system goes down for reboot/poweroff, resp. suspend/hibernate. This may be used by applications for saving data on disk, releasing memory or doing other jobs that shall be done shortly before shutdown/sleep, in conjunction with delay inhibitor locks. After completion of this work they should release their inhibition locks in order not to delay the operation any further.

你也可以看看这个sample program用 Python 编写,使用 D-Bus 和 PrepareForSleep() 信号。

关于linux - 我的 Linux 程序如何在不修改任何系统配置文件的情况下获得计算机即将进入休眠状态的通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28309202/

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