autoupdate: Neustart nur noch im Wartungsfenster (So 04:00-06:59)
Ampel / ampel (push) Successful in 26s

Beim ersten Einschalten von mc2-autoupdate.timer holte systemd (Persistent=true) den seit
August verpassten Sonntagslauf sofort nach. Der Lauf spielte nichts ein, startete die Box
wegen des wartenden Kernel-Updates aber am Donnerstag um 14:51 neu. Laeufe ausserhalb des
Fensters melden einen noetigen Neustart jetzt nur an; von Hand erzwingen mit
MC_AUTOUPDATE_REBOOT_JETZT=1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Hitonabi
2026-09-24 14:54:52 +02:00
co-authored by Claude Opus 5.5
parent 45b5bf275c
commit c8718fcde0
+11
View File
@@ -182,6 +182,7 @@ Wahrscheinliche Ursache/Fix (Box-Diagnose): $sugg}"
# wieder anschalten. Im Zweifel lieber nicht neustarten.
#
# Abschalten: MC_AUTOUPDATE_REBOOT=0 in der Umgebung des Cron-Jobs.
# Ausserhalb des Wartungsfensters erzwingen (von Hand): MC_AUTOUPDATE_REBOOT_JETZT=1.
reboot_wenn_noetig(){
[ "${MC_AUTOUPDATE_REBOOT:-1}" = "1" ] || { say "Neustart per Env abgeschaltet."; return 0; }
[ -f /var/run/reboot-required ] || { say "Kein Neustart noetig."; return 0; }
@@ -189,6 +190,16 @@ reboot_wenn_noetig(){
local pakete; pakete="$(sort -u /var/run/reboot-required.pkgs 2>/dev/null | tr "
" " ")"
# Sicherung 0 (24.09.2026): neu gestartet wird nur im Wartungsfenster, sonntags 04:00-06:59.
# Anlass: Ein nachgeholter Lauf (Persistent=true beim Einschalten des Timers) startete die Box
# an einem Donnerstagnachmittag neu. Laeufe ausserhalb des Fensters melden den Neustart nur an.
local tag stunde
tag="$(date +%u)"; stunde="$((10#$(date +%H)))"
if [ "${MC_AUTOUPDATE_REBOOT_JETZT:-0}" != "1" ] && { [ "$tag" != "7" ] || [ "$stunde" -lt 4 ] || [ "$stunde" -ge 7 ]; }; then
notify "Neustart steht an (${pakete:-Kernel/libc}), passiert aber erst im Wartungsfenster am Sonntag frueh."
return 0
fi
# Sicherung 1: kommen die Dienste ohne Login von selbst wieder hoch?
# $USER ist in systemd-/Cron-Umgebungen NICHT gesetzt — mit set -u waere das ein
# sofortiger Abbruch des ganzen Update-Laufs. id -un funktioniert immer.