/ testnet / start.sh
start.sh
 1  #!/bin/sh
 2  
 3  # Validate Java is installed and the minimum version is available
 4  MIN_JAVA_VER='11'
 5  
 6  if command -v java > /dev/null 2>&1; then
 7      # Example: openjdk version "11.0.6" 2020-01-14
 8      version=$(java -version 2>&1 | awk -F '"' '/version/ {print $2}' | cut -d'.' -f1,2)
 9      if echo "${version}" "${MIN_JAVA_VER}" | awk '{ if ($2 > 0 && $1 >= $2) exit 0; else exit 1}'; then
10          echo 'Passed Java version check'
11      else
12          echo "Please upgrade your Java to version ${MIN_JAVA_VER} or greater"
13          exit 1
14      fi
15  else
16    echo "Java is not available, please install Java ${MIN_JAVA_VER} or greater"
17    exit 1
18  fi
19  
20  # No forknet.jar but we have a Maven built one?
21  # Be helpful and copy across to correct location
22  if [ ! -e forknet.jar -a -f target/forknet*.jar ]; then
23  	echo "Copying Maven-built Forknet JAR to correct pathname"
24  	cp target/forknet*.jar forknet.jar
25  fi
26  
27  # Limits Java JVM stack size and maximum heap usage.
28  # Comment out for bigger systems, e.g. non-routers
29  # or when API documentation is enabled
30  JVM_MEMORY_ARGS="-Xss256m -XX:+UseSerialGC"
31  
32  # Although java.net.preferIPv4Stack is supposed to be false
33  # by default in Java 11, on some platforms (e.g. FreeBSD 12),
34  # it is overridden to be true by default. Hence we explicitly
35  # set it to false to obtain desired behaviour.
36  nohup nice -n 20 java \
37  	-Djava.net.preferIPv4Stack=false \
38  	${JVM_MEMORY_ARGS} \
39  	-jar forknet.jar \
40  	settings-test.json \
41  	1>run.log 2>&1 &
42  
43  # Save backgrounded process's PID
44  echo $! > run.pid
45  echo forknet running as pid $!