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)"
|
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
|
if [[ -s "./variables.txt" ]]; then
|
||||||
# shellcheck disable=SC1091
|
# shellcheck disable=SC1091
|
||||||
source "./variables.txt"
|
source "./variables.txt"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
GAME_ARGS_REL="${NEOFORGE_ARGS_REL}"
|
# Перегенерация user_jvm_args.txt из JAVA_ARGS (как при запуске через start.sh / start.ps1).
|
||||||
# Префикс для journalctl | grep, например: journalctl -u minecraft -b | grep '[mc-launch]'
|
# Править JVM: только variables.txt → JAVA_ARGS. user_jvm_args.txt не редактировать вручную.
|
||||||
_MC_LP='[mc-launch]'
|
_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) =========="
|
echo "\${_MC_LP} ========== Minecraft server (systemd / run-service.sh) =========="
|
||||||
_JAVA_CMD="\${JAVA:-java}"
|
_JAVA_CMD="\${JAVA:-java}"
|
||||||
@@ -217,6 +247,10 @@ fi
|
|||||||
echo "\${_MC_LP} Game/program args file: @\${GAME_ARGS_REL}"
|
echo "\${_MC_LP} Game/program args file: @\${GAME_ARGS_REL}"
|
||||||
echo "\${_MC_LP} Trailing args: \$*"
|
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} 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} =============================================================="
|
echo "\${_MC_LP} =============================================================="
|
||||||
|
|
||||||
# shellcheck disable=SC2086
|
# shellcheck disable=SC2086
|
||||||
@@ -294,4 +328,6 @@ echo " sudo systemctl status ${SERVICE_NAME}"
|
|||||||
echo " sudo systemctl stop ${SERVICE_NAME}"
|
echo " sudo systemctl stop ${SERVICE_NAME}"
|
||||||
echo " sudo systemctl restart ${SERVICE_NAME}"
|
echo " sudo systemctl restart ${SERVICE_NAME}"
|
||||||
echo " sudo journalctl -u ${SERVICE_NAME} -f # живые логи"
|
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 # удалить сервис"
|
echo " sudo $0 --uninstall # удалить сервис"
|
||||||
|
|||||||
Reference in New Issue
Block a user