Linux中有暂停\恢复信号吗?

ixS*_*Sci 6 linux signals hibernation

我的应用程序需要在休眠模式下做出反应,以便它可以对挂起和其他恢复操作执行某些操作.我发现了一些特定于分发的方法来实现它(Upower + DBus),但没有找到任何通用的东西.有办法吗?

谢谢!

Mic*_*lon 5

一个简单的解决方案是使用自管。打开一个管道并定期向其中写入时间戳。select在此管道上读取时间戳并将其与当前时间进行比较。当差距很大时,这意味着您刚刚从系统暂停或休眠模式中醒来。

至于相反,盖子关闭的时间不多,它会翻转开关。

如果您确实需要在挂起时执行操作,那么您将需要在 pm-utils 中设置像这样的 powersave 挂钩https://help.ubuntu.com/community/PowerManagement/ReducedPower。它可以很简单

kill -1 `cat mypid` ; sleep 1
Run Code Online (Sandbox Code Playgroud)

然后,您的进程将捕获 SIGHUP 并执行需要执行的操作来准备暂停。睡眠会延迟该过程足够长的时间,以便您的程序对信号做出反应。