2011-05-26 84 views
5

我的應用程序需要在休眠模式下作出反應,以便它可以對暫停和其他恢復操作執行一些操作。我發現了一些特定的分配方式來實現它(Upower + DBus),但沒有找到任何通用的。有沒有辦法做到這一點?Linux中是否掛起 resume信號?

謝謝!

+2

這可能是一些東西 http://www.mjmwired.net/kernel/Documentation/power/freezing-of-tasks.txt – Kristofer 2011-05-26 11:13:39

+0

@Kristofer,謝謝你的線索我發現更合適:http:// www。 mjmwired.net/kernel/Documentation/power/notifiers.txt但它似乎只在內核模式下才有可能,但我需要在用戶空間中通知而不寫任何內核模塊 – ixSci 2011-05-28 09:54:48

回答

2

一個簡單的解決方案是使用自我管道。打開管道並定期向其寫入時間戳。 select來讀取時間戳並將它們與當前時間進行比較。當存在很大差距時,這意味着您剛從系統暫停或休眠模式中醒來。

至於其他方式,蓋子關閉並且翻轉開關的時間並不多。

如果您確實需要採取暫停行動,那麼您需要在pm-utils中設置像這樣的這樣的powersave掛鉤。它可以是如此簡單

kill -1 `cat mypid` ; sleep 1 

您的過程然後將陷阱SIGHUP並做需要做什麼準備暫停。睡眠延遲了程序足夠長的時間,以使程序對信號作出反應。