File size: 2,368 Bytes
9d377df 9fa456d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# λ°±κ·ΈλΌμ΄λμμ μλ²λ₯Ό κ³μ μ€ννλ μ€ν¬λ¦½νΈ
$ErrorActionPreference = "Continue"
$scriptPath = Split-Path -Parent $MyInvocation.MyCommand.Path
Set-Location $scriptPath
# λ‘κ·Έ νμΌ κ²½λ‘
$logFile = Join-Path $scriptPath "server.log"
function Write-Log {
param([string]$Message)
$timestamp = Get-Date -Format 'yyyy-MM-dd HH:mm:ss'
$logMessage = "[$timestamp] $Message"
Write-Host $logMessage
Add-Content -Path $logFile -Value $logMessage
}
function Start-ServerProcess {
Write-Log "μλ² νλ‘μΈμ€ μμ μ€..."
$processInfo = New-Object System.Diagnostics.ProcessStartInfo
$processInfo.FileName = "python"
$processInfo.Arguments = "run.py"
$processInfo.WorkingDirectory = $scriptPath
$processInfo.UseShellExecute = $false
$processInfo.RedirectStandardOutput = $true
$processInfo.RedirectStandardError = $true
$processInfo.CreateNoWindow = $true
$process = New-Object System.Diagnostics.Process
$process.StartInfo = $processInfo
# μΆλ ₯ 리λ€μ΄λ μ
$process.add_OutputDataReceived({
param($sender, $e)
if ($e.Data) {
Write-Log $e.Data
}
})
$process.add_ErrorDataReceived({
param($sender, $e)
if ($e.Data) {
Write-Log "ERROR: $($e.Data)"
}
})
$process.Start() | Out-Null
$process.BeginOutputReadLine()
$process.BeginErrorReadLine()
return $process
}
# λ©μΈ 루ν
Write-Log "=== μλ² μλ μ¬μμ μ€ν¬λ¦½νΈ μμ ==="
while ($true) {
$process = $null
try {
$process = Start-ServerProcess
Write-Log "μλ² νλ‘μΈμ€ μμλ¨ (PID: $($process.Id))"
# νλ‘μΈμ€κ° μ’
λ£λ λκΉμ§ λκΈ°
$process.WaitForExit()
$exitCode = $process.ExitCode
Write-Log "μλ² νλ‘μΈμ€ μ’
λ£λ¨ (Exit Code: $exitCode)"
# νλ‘μΈμ€ μ 리
if (!$process.HasExited) {
$process.Kill()
}
$process.Dispose()
}
catch {
Write-Log "μ€λ₯ λ°μ: $_"
if ($process -and !$process.HasExited) {
try {
$process.Kill()
} catch {}
}
}
Write-Log "5μ΄ ν μλ²λ₯Ό μ¬μμν©λλ€..."
Start-Sleep -Seconds 5
}
|