46 lines
1023 B
PowerShell
46 lines
1023 B
PowerShell
|
function Restart-Wsl {
|
||
|
<#
|
||
|
.SYNOPSIS
|
||
|
Restarts Wsl and waits for it to restart
|
||
|
|
||
|
.DESCRIPTION
|
||
|
Restarts Wsl and waits for it to restart
|
||
|
|
||
|
.EXAMPLE
|
||
|
Restart-Wsl
|
||
|
#>
|
||
|
[CmdletBinding()]
|
||
|
param()
|
||
|
|
||
|
$ErrorActionPreference = "Stop"
|
||
|
$logLead = (Get-LogLeadName)
|
||
|
|
||
|
Write-Host "$logLead : Stopping all Docker Desktop processes"
|
||
|
Get-Process "*docker desktop*" | Stop-Process
|
||
|
|
||
|
Write-Host "$logLead : Shutting down WSL"
|
||
|
|
||
|
wsl --shutdown
|
||
|
|
||
|
Write-Host "$logLead : Waiting for Wsl to shutdown"
|
||
|
Start-Sleep -Seconds 5
|
||
|
|
||
|
Write-Host "$logLead : Starting all Docker Desktop processes"
|
||
|
Start-Process "C:\Program Files\Docker\Docker\Docker Desktop.exe"
|
||
|
|
||
|
Write-Host "$logLead : Waiting for Docker Desktop to startup"
|
||
|
|
||
|
$job = Start-Job -ScriptBlock {
|
||
|
do
|
||
|
{
|
||
|
docker version
|
||
|
}
|
||
|
while($lastexitcode -ne 0)
|
||
|
}
|
||
|
|
||
|
Wait-Job -Job $job | Out-Null
|
||
|
|
||
|
Remove-Job -Job $job
|
||
|
|
||
|
Write-Host "$logLead : Wsl successfully restarted"
|
||
|
}
|