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

我的应用程序需要在hibernate模式下作出反应,以便在恢复时可以对暂停和其他操作执行一些操作。 我发现了一些特定的分配方式来实现它(Upower + DBus),但没有find任何通用的。 有没有办法做到这一点?

谢谢!

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

另一方面,盖子关闭并且翻转开关的时间并不多。

如果你真的需要暂停,那么你需要在pm-utils中设置https://help.ubuntu.com/community/PowerManagement/ReducedPower这样的powersave钩子。 它可以像…一样简单

 kill -1 `cat mypid` ; sleep 1 

然后你的过程会陷入SIGHUP,并做好需要做的准备暂停。 睡眠延迟了程序足够长的时间,以使程序对信号作出反应。