mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-04 09:10:52 +03:00
feat(web-info): проверка TCP-порта Apache
Статус строился только по наличию процесса httpd: при живом процессе и
не поднявшемся сервере (занятый порт, битый конфиг) навык рапортовал
«Запущен». Теперь порт из Listen проверяется TCP-коннектом на 127.0.0.1
с таймаутом 1 с — «(слушается)» / «(не отвечает)».
Сами публикации намеренно не опрашиваются: запрос к /{AppName} поднимает
сеанс веб-клиента 1С и занимает лицензию, а публикаций может быть много.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
b8cbb0111a
commit
0d4933f135
@@ -1,4 +1,4 @@
|
||||
# web-info v1.2 — Apache & 1C publication status
|
||||
# web-info v1.3 — Apache & 1C publication status
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
<#
|
||||
.SYNOPSIS
|
||||
@@ -82,7 +82,24 @@ $port = "—"
|
||||
if ($confContent -match '(?m)^Listen\s+(\d+)') {
|
||||
$port = $Matches[1]
|
||||
}
|
||||
Write-Host "Port: $port"
|
||||
# Проверяем именно TCP-порт: запрос к публикации поднял бы сеанс 1С и занял лицензию
|
||||
$portState = ""
|
||||
if ($port -ne "—") {
|
||||
$client = New-Object System.Net.Sockets.TcpClient
|
||||
try {
|
||||
$async = $client.BeginConnect("127.0.0.1", [int]$port, $null, $null)
|
||||
if ($async.AsyncWaitHandle.WaitOne(1000) -and $client.Connected) {
|
||||
$portState = " (слушается)"
|
||||
} else {
|
||||
$portState = " (не отвечает)"
|
||||
}
|
||||
} catch {
|
||||
$portState = " (не отвечает)"
|
||||
} finally {
|
||||
$client.Close()
|
||||
}
|
||||
}
|
||||
Write-Host "Port: $port$portState"
|
||||
|
||||
# Extract wsap24 path
|
||||
if ($confContent -match 'LoadModule\s+_1cws_module\s+"([^"]+)"') {
|
||||
|
||||
Reference in New Issue
Block a user