Update Russian translations for various resource packs, enhancing item names, GUI elements, and descriptions for improved localization; add warnings in install-service.sh regarding server directory placement in /home for better systemd compatibility.
This commit is contained in:
@@ -84,6 +84,45 @@ fi
|
||||
[[ -d "${SERVER_DIR}" ]] || err "каталог сервера не найден: ${SERVER_DIR}"
|
||||
[[ -f "${SERVER_DIR}/start.sh" ]] || err "не найден ${SERVER_DIR}/start.sh"
|
||||
|
||||
# 3b. Предупреждение про /home — типичная причина status=200/CHDIR
|
||||
# ProtectHome=read-only в unit-файле блокирует доступ к /home,
|
||||
# плюс домашний каталог обычно имеет права 750 и пользователь
|
||||
# сервиса не может в него войти. Рекомендуем /opt/<name>.
|
||||
if [[ "${SERVER_DIR}" == /home/* ]]; then
|
||||
PARENT_USER="$(stat -c '%U' "$(dirname "${SERVER_DIR}")" 2>/dev/null || echo "$USER")"
|
||||
SUGGESTED_DIR="/opt/$(basename "$(dirname "${SERVER_DIR}")")/$(basename "${SERVER_DIR}")"
|
||||
cat >&2 <<EOF
|
||||
|
||||
============================ ВНИМАНИЕ ============================
|
||||
Каталог сервера находится в /home/:
|
||||
${SERVER_DIR}
|
||||
|
||||
Это плохое место для systemd-сервиса:
|
||||
- ProtectHome=read-only в unit-файле блокирует /home;
|
||||
- дефолтные права на ~ (обычно 750) не дают зайти юзеру minecraft;
|
||||
- типовая ошибка systemd: status=200/CHDIR.
|
||||
|
||||
Рекомендуется перенести сервер в /opt (или /srv) и работать оттуда.
|
||||
Пример переноса (если вы уже клонировали репозиторий в /home):
|
||||
|
||||
sudo systemctl stop ${SERVICE_NAME} 2>/dev/null || true
|
||||
sudo mkdir -p $(dirname "${SUGGESTED_DIR}")
|
||||
sudo mv "$(dirname "${SERVER_DIR}")" "$(dirname "${SUGGESTED_DIR}")/"
|
||||
cd "${SUGGESTED_DIR}"
|
||||
sudo ./install-service.sh --admin-user ${PARENT_USER}
|
||||
|
||||
После этого git pull/push продолжит работать из нового пути,
|
||||
а сервис уже не будет упираться в ProtectHome.
|
||||
====================================================================
|
||||
|
||||
EOF
|
||||
read -r -p "Продолжить установку с текущим путём в /home? [y/N] " ans
|
||||
case "${ans,,}" in
|
||||
y|yes) echo "Продолжаю..." ;;
|
||||
*) err "установка отменена. Перенесите каталог в /opt и запустите скрипт снова." ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
chmod +x "${SERVER_DIR}/start.sh" "${SERVER_DIR}/run.sh" 2>/dev/null || true
|
||||
|
||||
# 4. Создание пользователя при необходимости
|
||||
@@ -142,6 +181,16 @@ EOF
|
||||
fi
|
||||
|
||||
# 7. Генерация systemd unit-файла
|
||||
# Если каталог в /home, ProtectHome нужно ослабить, иначе systemd
|
||||
# не сможет даже сделать chdir в WorkingDirectory.
|
||||
if [[ "${SERVER_DIR}" == /home/* ]]; then
|
||||
PROTECT_HOME_LINE="ProtectHome=false # ослаблено, т.к. сервер в /home"
|
||||
# Дополнительно открываем доступ юзеру minecraft на проход через ~
|
||||
chmod o+x "$(dirname "${SERVER_DIR}")" 2>/dev/null || true
|
||||
else
|
||||
PROTECT_HOME_LINE="ProtectHome=read-only"
|
||||
fi
|
||||
|
||||
echo ">> Создаю ${UNIT_FILE}..."
|
||||
cat > "${UNIT_FILE}" <<EOF
|
||||
[Unit]
|
||||
@@ -168,7 +217,7 @@ StandardError=journal
|
||||
NoNewPrivileges=true
|
||||
PrivateTmp=true
|
||||
ProtectSystem=full
|
||||
ProtectHome=read-only
|
||||
${PROTECT_HOME_LINE}
|
||||
ReadWritePaths=${SERVER_DIR}
|
||||
|
||||
[Install]
|
||||
|
||||
Reference in New Issue
Block a user