diff --git a/scripts/install.ps1 b/scripts/install.ps1 index 2edcbf2..7c0c0bf 100644 --- a/scripts/install.ps1 +++ b/scripts/install.ps1 @@ -44,7 +44,14 @@ function Ruf { param([string]$Datei, [string[]]$Argumente) $alt = $ErrorActionPreference $ErrorActionPreference = 'Continue' - try { & $Datei @Argumente; return $LASTEXITCODE } + try { + # Out-Host, damit die Ausgabe sichtbar bleibt, aber nicht zum + # Rueckgabewert wird. Ohne das kommt statt des Exit-Codes ein Array + # aus allen Ausgabezeilen zurueck - und jeder Vergleich damit ist + # falsch, ohne dass es auffaellt. + & $Datei @Argumente | Out-Host + return $LASTEXITCODE + } finally { $ErrorActionPreference = $alt } } @@ -202,13 +209,18 @@ if (-not $KeinAutostart) { Start-ScheduledTask -TaskName 'abdulive' # Warten, bis die Weboberflaeche antwortet - sonst oeffnet der Browser - # ins Leere. Der Daemon braucht ein paar Sekunden fuer Datenbank und - # erste Verbindungen. + # ins Leere. Der Daemon braucht einen Moment fuer Datenbank und erste + # Verbindungen. + # + # 127.0.0.1 und nicht localhost: der Daemon lauscht nur auf IPv4, und + # Windows loest localhost zuerst nach ::1 auf. Gemessen 2066 ms bis zum + # Rueckfall gegenueber 15 ms direkt - die Pruefung lief jedes Mal in ihr + # eigenes Zeitlimit. $bereit = $false foreach ($i in 1..30) { Start-Sleep -Seconds 1 try { - $null = Invoke-WebRequest 'http://localhost:4792/health' -UseBasicParsing -TimeoutSec 2 + $null = Invoke-WebRequest 'http://127.0.0.1:4792/health' -UseBasicParsing -TimeoutSec 2 $bereit = $true break } catch { }