mirror of
https://github.com/Qortal/qortal.git
synced 2026-04-26 11:39:23 +00:00
45 lines
1.5 KiB
Bash
45 lines
1.5 KiB
Bash
#!/bin/sh
|
|
set -eu
|
|
|
|
DEFAULT_JVM_MEMORY_ARGS='-XX:MaxRAMPercentage=25 -XX:+UseG1GC -Xss1024k'
|
|
START_ARGS_FILE="${QORTAL_START_ARGUMENTS_FILE:-/qortal/start-arguments.txt}"
|
|
SETTINGS_FILE="${QORTAL_SETTINGS_FILE:-/qortal/settings.json}"
|
|
|
|
if [ ! -f "${SETTINGS_FILE}" ]; then
|
|
printf '{}\n' > "${SETTINGS_FILE}"
|
|
fi
|
|
|
|
if [ ! -f "${START_ARGS_FILE}" ]; then
|
|
printf '%s\n' "${QORTAL_JVM_MEMORY_ARGS:-${DEFAULT_JVM_MEMORY_ARGS}}" > "${START_ARGS_FILE}"
|
|
fi
|
|
|
|
# Convert start-arguments file to a single shell-split argument string.
|
|
file_args="$(awk '
|
|
{
|
|
sub(/#.*/, "");
|
|
if (NF) {
|
|
for (i = 1; i <= NF; i++) {
|
|
printf "%s ", $i;
|
|
}
|
|
}
|
|
}
|
|
' "${START_ARGS_FILE}" 2>/dev/null || true)"
|
|
|
|
jvm_memory_args="${file_args:-${QORTAL_JVM_MEMORY_ARGS:-${DEFAULT_JVM_MEMORY_ARGS}}}"
|
|
echo "Using JVM memory args from ${START_ARGS_FILE}: ${jvm_memory_args}"
|
|
echo "Using settings file: ${SETTINGS_FILE}"
|
|
if [ -f "${SETTINGS_FILE}" ]; then
|
|
api_port="$(grep -E '"apiPort"[[:space:]]*:' "${SETTINGS_FILE}" | head -n1 | sed -E 's/.*:[[:space:]]*([0-9]+).*/\1/' || true)"
|
|
p2p_port="$(grep -E '"listenPort"[[:space:]]*:' "${SETTINGS_FILE}" | head -n1 | sed -E 's/.*:[[:space:]]*([0-9]+).*/\1/' || true)"
|
|
if [ -n "${api_port}" ] || [ -n "${p2p_port}" ]; then
|
|
echo "Configured ports from settings.json: apiPort=${api_port:-?} listenPort=${p2p_port:-?}"
|
|
fi
|
|
fi
|
|
|
|
if [ "$#" -eq 0 ]; then
|
|
set -- -jar /usr/local/qortal/qortal.jar "${SETTINGS_FILE}"
|
|
fi
|
|
|
|
# shellcheck disable=SC2086
|
|
exec java ${jvm_memory_args} -Djava.net.preferIPv4Stack=false "$@"
|