2016-04-16 21 views
2

Ich arbeite an einer Embedded-Linux-Plattform.Linux User-Benachrichtigung für die Aussetzung/Wiederaufnahme von Operationen

Als ich tun "echo "mem">/sys/power/state", wird das System einzustellen.

weiß ich, dass Kernel und Treiber können wissen, dass der Betrieb aussetzen kommenden Jahre. Aber wäre es möglich, dass ein Benutzer-Space-Prozess oder eine Anwendung die Benachrichtigung erhalten kann, dass das System aussetzt? Wie?

Zum Beispiel habe ich eine Anwendung, die ‚A‘ kontinuierlich in einen Puffer, deren Startadresse gegeben ist durch einen Gerätetreiber schreibt. Wäre es möglich, dass diese Anwendung benachrichtigt wird, dass das System aussetzt, so dass es diesen ganzen Puffer mit "B" ersetzen könnte, so dass, wenn der Fahrer wieder aufgenommen wird, alles, was der Fahrer sieht, "B" ist?

Vielen Dank.

Antwort

0

Suche nach der gleichen Sache. Leider habe ich während des Suspend/Resume-Vorgangs keine Benutzerbereichsbenachrichtigung gefunden. Anwendungen werden nur gekühlt/eingefroren und sie werden nie wissen, dass sie suspendiert sind.

jedoch ein möglicher Ansatz wäre eine allgemeine netlink Nachricht hinzufügen Senden oder uevent von jedem Fahrer Suspend/Resume-Funktion, die Sie ändern können. Dennoch erhält die Anwendung möglicherweise nie genug Zeit, um sie zu verarbeiten, bevor sie eingefroren wird und zu Rennbedingungen führen kann. Sagen wir, er hat die Suspend-Nachricht erhalten und wurde erst eingefroren, bevor er es verarbeiten konnte. Und wenn es wieder aufgenommen wird, wird es die Unterbrechungsnachricht verarbeiten.

IMO, es ist besser, das Szenario im Treiber zu behandeln. Lassen Sie den Benutzerbereich in Ruhe.

+0

Vielen Dank. Ich hätte dir früher xD antworten sollen. Ich hatte lange danach gesucht, aber nichts gefunden. Endlich kam ich zu dem Schluss, dass die Anwendungen nur eingefroren sind und nichts über die Aussetzung wissen. – uestclx