#!/usr/bin/env bash ## ## Copyright 2014-2024 Real Logic Limited. ## ## Licensed under the Apache License, Version 2.0 (the "License"); ## you may not use this file except in compliance with the License. ## You may obtain a copy of the License at ## ## https://www.apache.org/licenses/LICENSE-2.0 ## ## Unless required by applicable law or agreed to in writing, software ## distributed under the License is distributed on an "AS IS" BASIS, ## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ## See the License for the specific language governing permissions and ## limitations under the License. ## set -euo pipefail source ./script-common mkdir -p logs # tag::start_jvm[] function startNode() { namespace=ns_cluster$1 sudo ip netns exec ${namespace} su - ${USER} -c "cd ${PWD} && \ ${JAVA_HOME}/bin/java \ -cp ../../../aeron-all/build/libs/aeron-all-${VERSION}.jar \ -javaagent:../../../aeron-agent/build/libs/aeron-agent-${VERSION}.jar \ -XX:+UseBiasedLocking \ -XX:BiasedLockingStartupDelay=0 \ -XX:+UnlockExperimentalVMOptions \ -XX:+TrustFinalNonStaticFields \ -XX:+UnlockDiagnosticVMOptions \ -XX:GuaranteedSafepointInterval=300000 \ -XX:+UseParallelGC \ -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.ssl.need.client.auth=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false \ -Daeron.event.cluster.log=all \ -Daeron.cluster.tutorial.hostnames=10.42.0.10,10.42.0.11,10.42.0.12 \ -Daeron.cluster.tutorial.nodeId=${1} \ ${JVM_OPTS:-} ${ADD_OPENS} \ io.aeron.samples.cluster.tutorial.BasicAuctionClusteredServiceNode > logs/cluster-${1}.log" & } function startAll() { startNode 0 startNode 1 startNode 2 tail -n 100 -F logs/cluster-*.log } # end::start_jvm[] if [[ $# -lt 1 ]]; then startAll elif [[ ${1} == 0 ]] || [[ ${1} == 1 ]] || [[ ${1} == 2 ]]; then echo "starting node ${1}" startNode ${1} else echo "Usage: ./basic-auction-cluster [0,1,2]" exit 1 fi