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:
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")
|
||||
Reference in new issue
Block a user