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:
@@ -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 # удалить сервис"
|
||||
|
||||
Reference in New Issue
Block a user