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