我需要在系统关闭之前执行一些任务。我不能在类析构函数中这样做,因为我的服务不仅可以因为关闭而停止我的服务已经使用dbus与系统中的其他服务进行通信,因此我更希望有一些dbus信号来通知系统关闭linuxembeddedsystemd-service我想在析构函数中执行任务,但析构函数的上下文不适合-我需要执行异步任务。我期望一些dbus信号能够在它上面订阅
lb3vh1jj1#
通过D-Bus使用systemd-logind Inhibit() API获取delay型抑制器。您将收到一个文件描述符作为调用结果的一部分,因此请确保D-Bus绑定支持它。用户通过systemd-logind发起的关机将通过D-Bus广播PrepareForSleep信号,实际关机将延迟到您关闭()之前接收到的文件描述符(尽管最多只有几秒钟)。请参阅xss-lock项目以获取示例。
Inhibit()
delay
PrepareForSleep
1条答案
按热度按时间lb3vh1jj1#
通过D-Bus使用systemd-logind
Inhibit()
API获取delay
型抑制器。您将收到一个文件描述符作为调用结果的一部分,因此请确保D-Bus绑定支持它。用户通过systemd-logind发起的关机将通过D-Bus广播
PrepareForSleep
信号,实际关机将延迟到您关闭()之前接收到的文件描述符(尽管最多只有几秒钟)。请参阅xss-lock项目以获取示例。