package service import ( "errors" "hy2xs-admin/util" ) // Жизненный цикл Hysteria принадлежит systemd и install-оркестратору. // Панель умеет только наблюдать состояние: функций Start/Stop/Restart и // смены версии здесь нет намеренно, а не «временно отключены». // InitHysteria2 проверяет единственное, что панели действительно нужно от // Hysteria на старте: наличие бинарника, версию которого показывает дашборд и // у которого спрашивает состояние Hysteria2IsRunning. // // Чтения HYSTERIA2_ENABLE здесь больше нет. Ключ был последним следом модели, // в которой панель сама запускала и останавливала Hysteria: clean install // создавал его со значением "0", записать "1" было некому, а вся ветка // сводилась к строке в журнале. Настройка, которая ничем не управляет, но // выглядит выключателем, хуже отсутствующей. func InitHysteria2() error { if !util.Exists(util.GetHysteria2BinPath()) { return errors.New("systemd-managed hysteria binary not found") } return nil } func Hysteria2IsRunning() bool { _, err := util.Exec("systemctl is-active --quiet hysteria-server") return err == nil } func ReleaseHysteria2() error { return nil }