2016-07-29 21 views
0

Ich habe einen Linux-Daemon und ich möchte über die Standard-Power-Status-Änderungen benachrichtigt werden: Schlaf/Fortsetzen, Ruhezustand. Momentan benutze ich pm-utils Hooks, aber ich frage mich, ob es etwas ähnliches wie udev gibt (durch die Registrierung können Sie Benachrichtigungen über Geräte erhalten: hinzufügen/entfernen/ändern/verschieben). acpid scheint entwickelt zu werden, um Benutzer-Space-Programme von ACPI-Ereignissen zu benachrichtigen. Ich weiß nicht, ob es für einen Daemon verwendet werden kann.Power states Benachrichtigungen in einem Linux-Daemon

Antwort

0

Soweit ich weiß, gibt es keinen uevent Broadcaster, der das Ereignis sleep/wakeup sendet. Aber Sie können ein Ereignis senden, indem Sie einen Treiber schreiben, der einen generiert und sendet, sobald er /PM_POST_SUSPEND empfängt. Um dies zu tun, sollten Sie einen Benachrichtigungsblock implementieren, der PM_ * -Benachrichtigung empfängt und ihn unter Verwendung von register_pm_notifier(&your_notification_block) bei der PM-Benachrichtigungskette registriert. Es bedeutet, dass Sie einen Übersetzertreiber schreiben können, der PM_* Benachrichtigung zu einem Ereignis übersetzt.

Aber, wenn das System zu schlafen, der Kernel friert alle Prozesse vor dem Aussetzen ein. Das heißt, obwohl Ihr Daemon das Ereignis erhält, wird es keine Zeit geben, etwas zu tun, was Sie wollen.