systemd старше 247: установщик останавливается с понятным сообщением (kit-sub без root требует LoadCredential), kit update не трогает юнит
This commit is contained in:
@@ -372,6 +372,10 @@ main() {
|
||||
set -- ${args[@]+"${args[@]}"}
|
||||
[[ $EUID -eq 0 ]] || die "Запустите от root: sudo -i, затем команду ещё раз."
|
||||
command -v systemctl >/dev/null || die "Нужен systemd."
|
||||
# kit-sub работает без root и получает конфиг через LoadCredential: он появился в systemd 247 (Ubuntu 22.04+, Debian 11+).
|
||||
local sysv
|
||||
sysv=$(systemctl --version 2>/dev/null | awk 'NR == 1 {print $2}')
|
||||
[[ $sysv =~ ^[0-9]+$ ]] && ((sysv < 247)) && die "Версия systemd ($sysv) слишком старая, нужна 247 и новее: Ubuntu 22.04 и новее, Debian 11 и новее. На этой системе подписка не запустится – поставьте поддерживаемую."
|
||||
if [[ -f $RESULT && -x /usr/local/x-ui/x-ui ]]; then
|
||||
die "3X-UI уже установлена этим скриптом. Управление: команда x-ui, данные для входа: cat $RESULT"
|
||||
fi
|
||||
|
||||
+9
-2
@@ -625,8 +625,15 @@ cmd_update() {
|
||||
# С 1.1 kit-sub работает без root: переписываем юнит под DynamicUser и LoadCredential.
|
||||
local c k
|
||||
c=$(jq -r '.cert // empty' /etc/kit-sub/config.json); k=$(jq -r '.key // empty' /etc/kit-sub/config.json)
|
||||
kit_sub_unit "$c" "$k" >/etc/systemd/system/kit-sub.service
|
||||
[[ -n $c ]] && echo '19 4 * * * root systemctl restart kit-sub >/dev/null 2>&1' >/etc/cron.d/kit-sub-cert
|
||||
local sysv
|
||||
sysv=$(systemctl --version 2>/dev/null | awk 'NR == 1 {print $2}')
|
||||
if [[ $sysv =~ ^[0-9]+$ ]] && ((sysv < 247)); then
|
||||
# LoadCredential появился в systemd 247: на более старой юнит без root не запустится, оставляем прежний.
|
||||
warn "systemd $sysv старше 247: юнит kit-sub не меняю (подписка работает как раньше). Лучше перейти на Ubuntu 22.04+ или Debian 11+."
|
||||
else
|
||||
kit_sub_unit "$c" "$k" >/etc/systemd/system/kit-sub.service
|
||||
[[ -n $c ]] && echo '19 4 * * * root systemctl restart kit-sub >/dev/null 2>&1' >/etc/cron.d/kit-sub-cert
|
||||
fi
|
||||
systemctl daemon-reload
|
||||
if systemctl restart kit-sub && sleep 2 && sub_ok; then
|
||||
say "Подписка kit-sub обновлена и отвечает"
|
||||
|
||||
Reference in New Issue
Block a user