Refactor install-service.sh to regenerate user_jvm_args.txt from JAVA_ARGS in variables.txt, enhancing JVM configuration management. Added logging for user_jvm_args updates and improved command output for monitoring server status.

This commit is contained in:
Leonid Pershin
2026-05-09 15:19:47 +03:00
parent 44a4aa656d
commit df232372df
+39 -3
View File
@@ -191,14 +191,44 @@ set -euo pipefail
cd "\$(cd "\$(dirname "\$0")" && pwd)"
SERVICE_UNIT_NAME="${SERVICE_NAME}"
GAME_ARGS_REL="${NEOFORGE_ARGS_REL}"
# Префикс для journalctl | grep -F '[mc-launch]'
_MC_LP='[mc-launch]'
if [[ -s "./variables.txt" ]]; then
# shellcheck disable=SC1091
source "./variables.txt"
fi
GAME_ARGS_REL="${NEOFORGE_ARGS_REL}"
# Префикс для journalctl | grep, например: journalctl -u minecraft -b | grep '[mc-launch]'
_MC_LP='[mc-launch]'
# Перегенерация user_jvm_args.txt из JAVA_ARGS (как при запуске через start.sh / start.ps1).
# Править JVM: только variables.txt → JAVA_ARGS. user_jvm_args.txt не редактировать вручную.
_regen_user_jvm_args() {
if [[ ! -s "./variables.txt" ]]; then
echo "\${_MC_LP} WARNING: variables.txt отсутствует — user_jvm_args.txt не обновлён." >&2
return 0
fi
local jargs="\${JAVA_ARGS:-}"
jargs="\${jargs%\$'\r'}"
if [[ -z "\${jargs// /}" ]]; then
echo "\${_MC_LP} WARNING: JAVA_ARGS пуст в variables.txt — user_jvm_args.txt не перезаписан." >&2
return 0
fi
cat > user_jvm_args.txt <<'JVMBLOCK'
# Xmx and Xms set the maximum and minimum RAM usage, respectively.
# They can take any number, followed by an M or a G.
# M means Megabyte, G means Gigabyte.
# For example, to set the maximum to 3GB: -Xmx3G
# To set the minimum to 2.5GB: -Xms2500M
# A good default for a modded server is 4GB.
# Uncomment the next line to set it.
# -Xmx4G
JVMBLOCK
printf '%s\n' "\${jargs}" >> user_jvm_args.txt
echo "\${_MC_LP} user_jvm_args.txt обновлён из variables.txt (JAVA_ARGS)."
}
_regen_user_jvm_args
echo "\${_MC_LP} ========== Minecraft server (systemd / run-service.sh) =========="
_JAVA_CMD="\${JAVA:-java}"
@@ -217,6 +247,10 @@ fi
echo "\${_MC_LP} Game/program args file: @\${GAME_ARGS_REL}"
echo "\${_MC_LP} Trailing args: \$*"
echo "\${_MC_LP} Java invocation pattern: \$_JAVA_CMD \${ADDITIONAL_ARGS:-} @user_jvm_args.txt @\${GAME_ARGS_REL} \$*"
echo "\${_MC_LP} Логи — только блок запуска (grep):"
echo "\${_MC_LP} sudo journalctl -u \${SERVICE_UNIT_NAME} -b --no-pager | grep -F '[mc-launch]'"
echo "\${_MC_LP} Живой поток:"
echo "\${_MC_LP} sudo journalctl -u \${SERVICE_UNIT_NAME} -f | grep --line-buffered -F '[mc-launch]'"
echo "\${_MC_LP} =============================================================="
# shellcheck disable=SC2086
@@ -294,4 +328,6 @@ echo " sudo systemctl status ${SERVICE_NAME}"
echo " sudo systemctl stop ${SERVICE_NAME}"
echo " sudo systemctl restart ${SERVICE_NAME}"
echo " sudo journalctl -u ${SERVICE_NAME} -f # живые логи"
echo " sudo journalctl -u ${SERVICE_NAME} -b --no-pager | grep -F '[mc-launch]' # JVM/запуск"
echo " sudo journalctl -u ${SERVICE_NAME} -f | grep --line-buffered -F '[mc-launch]' # поток"
echo " sudo $0 --uninstall # удалить сервис"