ixS*_*Sci 6 linux signals hibernation
我的应用程序需要在休眠模式下做出反应,以便它可以对挂起和其他恢复操作执行某些操作.我发现了一些特定于分发的方法来实现它(Upower + DBus),但没有找到任何通用的东西.有办法吗?
谢谢!
一个简单的解决方案是使用自管。打开一个管道并定期向其中写入时间戳。select在此管道上读取时间戳并将其与当前时间进行比较。当差距很大时,这意味着您刚刚从系统暂停或休眠模式中醒来。
至于相反,盖子关闭的时间不多,它会翻转开关。
如果您确实需要在挂起时执行操作,那么您将需要在 pm-utils 中设置像这样的 powersave 挂钩https://help.ubuntu.com/community/PowerManagement/ReducedPower。它可以很简单
kill -1 `cat mypid` ; sleep 1
Run Code Online (Sandbox Code Playgroud)
然后,您的进程将捕获 SIGHUP 并执行需要执行的操作来准备暂停。睡眠会延迟该过程足够长的时间,以便您的程序对信号做出反应。