/
kochkatech
/
CorpGame
Обзор
Документация
Войти
/
kochkatech
/
CorpGame
Код
Запросы
1
Задачи
Вики
Пакеты
0
Релизы
1
CI/CD
Аналитика
master
scripts/stop.ps1
35 строк
2 KB
kochkareal
feat(devops): свод к одному процессу Node на SQLite, портативная сборка без Docker; аудит безопасности
06 авг 2026, 15:06
06 авг 2026, 15:06
3266bcd
Код
Авторство
О чём код?
# Подстраховка на случай, если окно консоли закрыли необычным способом (например, # через "Завершить задачу" в диспетчере задач, а не крестиком) и node.exe остался висеть, # занимая порт — тогда следующий запуск start.bat будет выглядеть непонятно сломанным. # В обычном случае закрытия окна или Ctrl+C этот скрипт не нужен: start.ps1 сам # останавливает сервер в блоке finally. $ErrorActionPreference = 'Continue' [Console]::OutputEncoding = [System.Text.Encoding]::UTF8 $OutputEncoding = [System.Text.Encoding]::UTF8 $gameRoot = Split-Path -Parent $PSScriptRoot $pidPath = Join-Path $gameRoot 'data\server.pid' if (-not (Test-Path $pidPath)) { Write-Host "Игра не запущена (файл data\server.pid не найден)." exit 0 } $targetPid = Get-Content $pidPath -ErrorAction SilentlyContinue $proc = if ($targetPid) { Get-Process -Id $targetPid -ErrorAction SilentlyContinue } else { $null } if (-not $proc) { Write-Host "Процесс уже не работает. Убираю старый data\server.pid." Remove-Item $pidPath -ErrorAction SilentlyContinue exit 0 } if ($proc.ProcessName -ne 'node') { Write-Host "[внимание] Процесс с этим PID — не node.exe (это $($proc.ProcessName)). Ничего не останавливаю." exit 1 } Stop-Process -Id $targetPid -Force Remove-Item $pidPath -ErrorAction SilentlyContinue Write-Host "Игра остановлена."