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

我的Linux程序如何在不修改任何系统配置文件的情况下获得计算机即将进入睡眠状态的通知?,linux,notifications,sleep,Linux,Notifications,Sleep,我编写了一个Linux程序来创建一些持久的TCP连接,我希望我的程序在Linux计算机进入睡眠之前关闭这些TCP套接字,这样远程对等机就不会留下一个无响应的“僵尸”TCP连接 根据answer,一种方法是修改/etc/pm/sleep.d文件以运行一个特殊的通知应用程序,但我不喜欢这样做,因为修改系统配置文件是有风险的(在很多情况下,如果我的程序没有权限这样做的话,这是不可能的) Windows和MacOS/X为这类事情提供了基于C的通知API;LinuxLand中是否有类似的功能?您可以使用一

我编写了一个Linux程序来创建一些持久的TCP连接,我希望我的程序在Linux计算机进入睡眠之前关闭这些TCP套接字,这样远程对等机就不会留下一个无响应的“僵尸”TCP连接

根据answer,一种方法是修改/etc/pm/sleep.d文件以运行一个特殊的通知应用程序,但我不喜欢这样做,因为修改系统配置文件是有风险的(在很多情况下,如果我的程序没有权限这样做的话,这是不可能的)

Windows和MacOS/X为这类事情提供了基于C的通知API;LinuxLand中是否有类似的功能?

您可以使用一个小型守护程序来管理用户登录,并提供C库接口和接口。您可以订阅以下信号:

PrepareForShutdown()
resp
PrepareForSleep()
信号在系统停机重新启动/关机之前(参数为True)和之后(参数为False)分别发送。暂停/休眠。这可由应用程序用于在磁盘上保存数据、释放内存或在关机/睡眠前不久完成的其他工作,以及延迟抑制锁。完成此项工作后,他们应释放其抑制锁,以免进一步延迟操作

您还可以看看用Python编写的使用D-Bus和PrepareForSleep()信号的代码