#!/bin/bash # Pfade BOOTC="/usr/bin/bootc" LOGGER="/usr/bin/logger" LOGINCTL="/usr/bin/loginctl" NOTIFY="/usr/bin/notify-send" SUDO="/usr/bin/sudo" SYSTEMCTL="/usr/bin/systemctl" TAG="bootc-timer" # 1. Upgrade ausführen $BOOTC upgrade # 2. Status-Check if $BOOTC status --json | grep -q '"staged"'; then # 3. Den ersten User finden, der nicht Root ist USER_ID=$($LOGINCTL list-users --no-legend | awk '$2 != "root" {print $1; exit}') if [[ -z "$USER_ID" ]]; then $LOGGER -t "$TAG" "Update bereit, aber kein aktiver Desktop-User gefunden." exit 0 fi # 4. Benachrichtigung senden ACTION=$($SUDO -u "#$USER_ID" env \ DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$USER_ID/bus \ XDG_RUNTIME_DIR=/run/user/$USER_ID \ $NOTIFY "System-Update bereit" \ "Ein neues Image wurde heruntergeladen. Jetzt neu starten?" \ --icon=software-update-available \ --urgency=critical \ --action="reboot=Jetzt neu starten" \ --wait) # 5. Auswertung if [[ "$ACTION" == "reboot" ]]; then $LOGGER -t "$TAG" "User hat Reboot gewählt." $SYSTEMCTL reboot fi else $LOGGER -t "$TAG" "System aktuell." fi