Linux守护进程中的电源状态通知



我有一个Linux守护进程,我希望收到有关标准电源状态更改的通知:睡眠/恢复、休眠。现在我正在使用pm-utils挂钩,但我想知道是否有类似于udev的东西(通过注册,您可以接收有关设备的通知:add/remove/change/move)。acpid似乎被设计为向用户空间程序通知ACPI事件。我不知道它是否可以用于守护进程。

据我所知,没有发送睡眠/唤醒相关事件的事件广播。但是,您可以自己编写驱动程序来发送uevent,该驱动程序在收到PM_SUSPEND_PREPARE/PM_POST_SUSPEND后立即生成并发送一个。要做到这一点,您应该实现一个接收PM_*通知的通知块,并使用register_pm_notifier(&your_notification_block)将其注册到PM通知器链。这意味着您可以编写一个翻译器驱动程序,将PM_*通知翻译为uevent。

但是,当系统进入睡眠状态时,内核会在暂停之前冻结所有进程。这意味着,尽管您的守护进程收到了uevent,但将没有时间做您想要的事情。

最新更新