Überwachung des RAUC-Installationsprozesses mit D-Bus
Posted: 25 Feb 2025, 15:54
Ich verwende RAUC, um Updates auf meinem Linux -Gerät zu installieren. Ich möchte einen Wachhund verwenden (bereits auf dem Gerät in Watchdog_device installiert), um den RAUC -Installationsprozess zu überwachen, um sicherzustellen, dass alles reibungslos ausgeführt wird. Aber es sieht so aus, als würde die KeepWatchDogalive -Funktion nicht aufgerufen. Ich bin mir auch nicht sicher, ob meine DBUS-Variablen korrekt eingestellt sind und ob der Aufruf des DBus-Monoitors korrekt ist.
Die relevante Rauc-Dokumentation hat keine Beispiele
https://rauc.readthedocs.io/en/latest/u ... gress-data
https://rauc.readthedocs.io/en/latest/r ... s-property
Code: Select all
DBUS_INTERFACE="de.pengutronix.rauc.Installer"
DBUS_MEMBER="PropertiesChanged"
DBUS_PATH="/de/pengutronix/rauc/Installer"
keepWatchdogAlive()
{
echo "1" > $WATCHDOG_DEVICE
echo "Keep Watchdog alive"
}
monitor_dbus() {
dbus-monitor --system "type='signal',interface='$DBUS_INTERFACE',member='$DBUS_MEMBER',path='$DBUS_PATH'" | \
while read -r line; do
if echo "$line" | grep -q "Progress"; then
keep_watchdog_alive
fi
done
}
echo "Starting D-Bus monitor. Waiting for $DBUS_MEMBER signals on $DBUS_INTERFACE ... "
monitor_dbus &
DBUS_MONITOR_PID=$!
echo "Starting Update Agent script ... "
if [ -d "$RAUC_BUNDLE_DIR" ]; then
if [ -n "$(ls -A "$RAUC_BUNDLE_DIR")" ]; then
for bundle in "$RAUC_BUNDLE_DIR"/*
do
rauc install "$bundle"
done
else
echo "No rauc bundles found in $RAUC_BUNDLE_DIR"
fi
else
echo "Directory $RAUC_BUNDLE_DIR does not exist."
fi
https://rauc.readthedocs.io/en/latest/u ... gress-data
https://rauc.readthedocs.io/en/latest/r ... s-property