Java 17 для службы подписи: установщик ставит openjdk-17-jre-headless там, где Java по умолчанию старее (Ubuntu 22.04 — 11; crypto-service собран под 17), в слой образа кладётся Java 17; «Подготовка модулей» и проверка готовности не принимают падающую по кругу службу за работающую (работает ≥ 5 с) и называют причину — в том числе «слишком старая Java» с командой исправления

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
zuevav
2026-10-05 19:30:53 +03:00
parent 2c22974141
commit 64928cfed1
4 changed files with 97 additions and 13 deletions
+7 -3
View File
@@ -17,6 +17,8 @@ import (
"strings"
"sync"
"time"
"git.zetit.ru/zuevav/Bridge-and-Join-s/internal/release"
)
// cryptoJarPath — модуль службы пробной подписи bj-crypto (компонент crypto-service.jar).
@@ -134,10 +136,12 @@ func readinessChecks(ctx context.Context, rc *RuntimeConfig) []ReadyCheck {
// Служба bj-crypto — пробная подпись и проверка ключа из bj; пакеты для НРД подписывает шлюз, поэтому
// её остановка обмену не мешает. Модуль приезжает с обновлениями — до них службы нет, это не ошибка.
if _, err := os.Stat(cryptoJarPath); err == nil {
out, _ := exec.CommandContext(cctx, "systemctl", "is-active", "bj-crypto.service").Output()
if svc := strings.TrimSpace(string(out)); svc != "active" {
if u := unitRunState("bj-crypto"); !(u.State == "active" && u.Up >= 5*time.Second) {
c.State, c.Link = "warn", "/admin/setup#sec-crypto"
c.Detail += "; служба пробной подписи bj-crypto не запущена (" + pickStr(svc, "нет") + ") — обмену не мешает: пакеты для НРД подписывает шлюз"
c.Detail += "; служба пробной подписи bj-crypto не работает (" + pickStr(u.State, "нет") + ") — обмену не мешает: пакеты для НРД подписывает шлюз"
if cc, ok := release.ComponentByName("crypto-service.jar"); ok && (u.Restarts >= 3 || u.State == "failed") {
c.Detail += ". Причина: " + unitFailCause(cc)
}
} else {
c.Detail += ", служба пробной подписи bj-crypto работает"
}