Automatischer Push: 14 Datei(en) geändert

- .vault-tools/plan-kopie/LIESMICH.md
- .vault-tools/plan-kopie/rot_nachweis.py
- .vault-tools/trading-plattform-pruefung/LIESMICH.md
- .vault-tools/trading-plattform-pruefung/dienste_stand.sh
- .vault-tools/trading-plattform-pruefung/ha_einrichten.py
- .vault-tools/trading-plattform-pruefung/hole_kerzen.py
- .vault-tools/trading-plattform-pruefung/neustart_echtlauf.py
- .vault-tools/trading-plattform-pruefung/ntfy_lesen.py
- .vault-tools/trading-plattform-pruefung/pause_echtlauf.py
- .vault-tools/trading-plattform-pruefung/wiederanlauf_probe.ps1
- AI/Regelwerk/codeworkflow.md
- AI/Regelwerk/projekte.md
- … und 2 weitere

Erzeugt vom PostToolUse-Hook .vault-tools/auto-push/auto_push.py.

Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
Pascal MichelandClaude Opus 5 committed 2026-09-21 04:00:01 +02:00
1 parent 395642c480
commit 246af19683
14 files changed
+964 -7

No files matched your search

@@ -0,0 +1,53 @@
# Wiederanlauf-Probe: beendet die Distribution HART (wsl --terminate) und misst, wann Wachhalter,
# Distribution und Dashboard von selbst zurueck sind. Ein laufender Paper-Runner stirbt dabei mit --
# deshalb nur ausserhalb der Handelszeit (15:30 bis 22:00 Uhr Berliner Zeit) und nur mit -Ausfuehren.
# Waehrend der Messung keinen anderen wsl.exe-Aufruf absetzen: Jeder Klient weckt die Distribution
# selbst und verfaelscht das Ergebnis. Die Datei ist reines ASCII (PowerShell 5.1 liest ohne BOM ANSI).
# Gemessen am 2026-09-20: terminate 19:30:17, Aufgabe und Distribution Running um 19:35:06, HTTP 200 um 19:35:13.
param(
[string]$Name = "Trading Plattform - WSL wachhalten",
[int]$MaxSekunden = 480,
[switch]$Ausfuehren
)
if (-not $Ausfuehren) {
"Nichts getan. Diese Probe beendet die WSL-Distribution hart; ein laufender Runner stirbt mit."
"Aufruf ausserhalb der Handelszeit: powershell -File wiederanlauf_probe.ps1 -Ausfuehren"
exit 2
}
$wsl = "$env:SystemRoot\System32\wsl.exe"
function Distro {
$roh = ((& $wsl -l -v) | Out-String).Replace([string][char]0, '')
foreach ($zeile in ($roh -split "\r?\n")) {
if ($zeile -match 'Debian\s+(\w+)') { return $Matches[1] }
}
return "unbekannt"
}
function Probe {
try {
$r = Invoke-WebRequest -UseBasicParsing -TimeoutSec 3 http://127.0.0.1:8144/api/gesund
return "HTTP " + $r.StatusCode
} catch {
return "tot"
}
}
"Vorher: Aufgabe " + (Get-ScheduledTask -TaskName $Name).State + ", Distro " + (Distro) + ", Dashboard " + (Probe)
& $wsl --terminate Debian | Out-Null
$start = Get-Date
"terminate um " + $start.ToString("HH:mm:ss")
$letzter = ""
while (((Get-Date) - $start).TotalSeconds -lt $MaxSekunden) {
$a = (Get-ScheduledTask -TaskName $Name).State
$d = Distro
$p = Probe
$s = [int]((Get-Date) - $start).TotalSeconds
$jetzt = "Aufgabe $a / Distro $d / Dashboard $p"
if ($jetzt -ne $letzter) { "+${s}s (" + (Get-Date).ToString("HH:mm:ss") + "): $jetzt"; $letzter = $jetzt }
if ($s -gt 15 -and $a -eq "Running" -and $d -eq "Running" -and $p -eq "HTTP 200") { break }
Start-Sleep -Seconds 5
}
"Ende der Messung um " + (Get-Date).ToString("HH:mm:ss")