updated auto-fix script and added 32-bit start script updated.

This commit is contained in:
crowetic 2024-11-29 15:12:30 -08:00
parent db1e5c02e5
commit 2344cedb0b
6 changed files with 104 additions and 31 deletions

View File

@ -13,6 +13,7 @@ NC='\033[0m' # No Color
PI_32_DETECTED=false
PI_64_DETECTED=false
UPDATED_SETTINGS=false
# Function to update the script
initial_update() {
@ -476,48 +477,55 @@ force_bootstrap() {
}
potentially_update_settings() {
echo "${GREEN}Backing up settings to backup-settings.json...${NC}"
echo "${GREEN}Backing up settings to a timestamped backup file...${NC}"
echo "${YELLOW}Changing to qortal directory...${NC}"
cd "${HOME}/qortal"
cp settings.json backup-settings.json
if [ ${SETTINGS_UPDATED} ]; then
echo "${YELLOW} Settings already updated this run, no need to attempt again...${NC}"
return
fi
TIMESTAMP=$(date +%Y%m%d%H%M%S)
BACKUP_FILE="backup-settings-${TIMESTAMP}.json"
cp settings.json "${BACKUP_FILE}"
SETTINGS_FILE="settings.json"
echo "${YELLOW}Checking for${NC} ${GREEN}archivingPause${NC} ${YELLOW}setting...${NC}"
if grep -q '"archivingPause"' "${SETTINGS_FILE}"; then
echo "${BLUE}archivingPause exists...${NC}${GREEN} updating value...${NC}"
echo "${BLUE}archivingPause exists...${NC}${GREEN} removing it...${NC}"
if command -v jq &> /dev/null; then
echo "${GREEN}jq exists,${NC}${YELLOW} using jq to modify setting...${NC}"
jq '.archivingPause = 999999999999' "${SETTINGS_FILE}" > "settings.tmp" && mv "settings.tmp" "${SETTINGS_FILE}"
if [ $? -ne 0 ]; then
echo "${RED}jq edit failed${NC}, ${YELLOW}modifying with sed...${NC}"
sed -i 's/"archivingPause"[[:space:]]*:[[:space:]]*[0-9]*/"archivingPause": 999999999999/' "${SETTINGS_FILE}"
jq 'del(.archivingPause)' "${SETTINGS_FILE}" > "settings.tmp"
if [ $? -eq 0 ]; then
mv "settings.tmp" "${SETTINGS_FILE}"
SETTINGS_UPDATED=true
else
echo "${RED}jq edit failed, restoring backup...${NC}"
mv "${BACKUP_FILE}" "${SETTINGS_FILE}"
return 1
fi
else
echo "${BLUE}jq doesn't exist, modifying with sed...${NC}"
sed -i 's/"archivingPause"[[:space:]]*:[[:space:]]*[0-9]*/"archivingPause": 999999999999/' "${SETTINGS_FILE}"
echo "${BLUE}jq doesn't exist, modifying with sed...${NC}"
sed -i '/"archivingPause"[[:space:]]*:/d' "${SETTINGS_FILE}"
if [ $? -ne 0 ]; then
echo "${RED}sed edit failed, restoring backup...${NC}"
mv "${BACKUP_FILE}" "${SETTINGS_FILE}"
return 1
fi
SETTINGS_UPDATED=true
fi
else
echo "${BLUE}archivingPause doesn't exist, adding...${NC}"
if command -v jq &> /dev/null; then
echo "${BLUE}jq exists, adding with jq...${NC}"
jq '. + {archivingPause: 999999999999}' "${SETTINGS_FILE}" > "settings.tmp" && mv "settings.tmp" "${SETTINGS_FILE}"
if [ $? -ne 0 ]; then
echo "${RED}jq edit failed, modifying with sed...${NC}"
sed -i 's/}$/,"archivingPause": 999999999999}/' "${SETTINGS_FILE}"
fi
else
echo "${BLUE}jq doesn't exist, adding with sed...${NC}"
sed -i 's/}$/,"archivingPause": 999999999999}/' "${SETTINGS_FILE}"
fi
fi
echo "${BLUE}archivingPause does not exist, no changes needed...${NC}"
fi
echo "${GREEN}Settings modification complete.${NC}"
cd "${HOME}"
return 0
}
update_script() {
echo "${YELLOW}Updating script to newest version and backing up old one...${NC}\n"
mkdir -p "${HOME}/qortal/new-scripts/backups"

65
start-32bit.sh Normal file
View File

@ -0,0 +1,65 @@
#!/bin/sh
# There's no need to run as root, so don't allow it, for security reasons
if [ "$USER" = "root" ]; then
echo "Please su to non-root user before running"
exit
fi
# Validate Java is installed and the minimum version is available
MIN_JAVA_VER='11'
if command -v java > /dev/null 2>&1; then
# Example: openjdk version "11.0.6" 2020-01-14
version=$(java -version 2>&1 | awk -F '"' '/version/ {print $2}' | cut -d'.' -f1,2)
if echo "${version}" "${MIN_JAVA_VER}" | awk '{ if ($2 > 0 && $1 >= $2) exit 0; else exit 1}'; then
echo 'Passed Java version check'
else
echo "Please upgrade your Java to version ${MIN_JAVA_VER} or greater"
exit 1
fi
else
echo "Java is not available, please install Java ${MIN_JAVA_VER} or greater"
exit 1
fi
# No qortal.jar but we have a Maven built one?
# Be helpful and copy across to correct location
if [ ! -e qortal.jar -a -f target/qortal*.jar ]; then
echo "Copying Maven-built Qortal JAR to correct pathname"
cp target/qortal*.jar qortal.jar
fi
# Limits Java JVM stack size and maximum heap usage.
# Comment out for bigger systems, e.g. non-routers
# or when API documentation is enabled
JVM_MEMORY_ARGS="-Xss1256k -Xms1750m -Xmx1750m"
#JVM_MEMORY_ARGS="
-Xms1750m \
-Xmx1750m \
-Xss1212k \
-XX:+HeapDumpOnOutOfMemoryError \
-XX:HeapDumpPath=./heapdump.hprof \
-XX:+UseG1GC \
-XX:MaxGCPauseMillis=300 \
-XX:InitiatingHeapOccupancyPercent=50 \
-XX:ParallelGCThreads=4 \
-XX:ConcGCThreads=2 \
-XX:G1HeapRegionSize=32m \
-XX:MaxTenuringThreshold=10 \
-XX:+AlwaysPreTouch
"
# Although java.net.preferIPv4Stack is supposed to be false
# by default in Java 11, on some platforms (e.g. FreeBSD 12),
# it is overridden to be true by default. Hence we explicitly
# set it to false to obtain desired behaviour.
nohup nice -n 15 java \
-Djava.net.preferIPv4Stack=false \
${JVM_MEMORY_ARGS} \
-jar qortal.jar \
1>run.log 2>&1 &
# Save backgrounded process's PID
echo $! > run.pid
echo qortal running as pid $!

View File

@ -33,8 +33,8 @@ fi
# Limits Java JVM stack size and maximum heap usage.
# Comment out for bigger systems, e.g. non-routers
# or when API documentation is enabled
#JVM_MEMORY_ARGS="-XX:MaxRAMPercentage=60 -XX:+UseG1GC -Xss512k -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./heapdump.hprof -Xlog:gc*:file=gc.log:time,uptime,level,tags"
JVM_MEMORY_ARGS="
JVM_MEMORY_ARGS="-XX:MaxRAMPercentage=80 -XX:+UseG1GC -Xss1024k"
#JVM_MEMORY_ARGS="
-Xms2600m \
-Xmx2600m \
-Xss1024k \

View File

@ -33,8 +33,8 @@ fi
# Limits Java JVM stack size and maximum heap usage.
# Comment out for bigger systems, e.g. non-routers
# or when API documentation is enabled
#JVM_MEMORY_ARGS="-XX:MaxRAMPercentage=40 -XX:+UseG1GC -Xss512k -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./heapdump.hprof"
JVM_MEMORY_ARGS="
JVM_MEMORY_ARGS="-XX:MaxRAMPercentage40 -XX:+UseG1GC -Xss512k"
#JVM_MEMORY_ARGS="
-Xms6000m \
-Xmx6000m \
-Xss2048k \

View File

@ -34,8 +34,8 @@ fi
# Comment out for bigger systems, e.g. non-routers
# or when API documentation is enabled
# Uncomment (remove '#' sign) line below if your system has less than 12GB of RAM for optimal RAM defaults
#JVM_MEMORY_ARGS="-XX:MaxRAMPercentage=40 -XX:+UseG1GC -Xss512k -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./heapdump.hprof"
JVM_MEMORY_ARGS="
JVM_MEMORY_ARGS="-XX:MaxRAMPercentage=40 -XX:+UseG1GC -Xss1024k"
#JVM_MEMORY_ARGS="
-Xms8000m \
-Xmx8000m \
-Xss4096k \

View File

@ -33,8 +33,8 @@ fi
# Limits Java JVM stack size and maximum heap usage.
# Comment out for bigger systems, e.g. non-routers
# or when API documentation is enabled
#JVM_MEMORY_ARGS="-Xss1256k -Xms1750m -Xmx1750m"
JVM_MEMORY_ARGS="
JVM_MEMORY_ARGS="-Xss1256k -Xms1750m -Xmx1750m"
#JVM_MEMORY_ARGS="
-Xms1750m \
-Xmx1750m \
-Xss1212k \