From dd33e9c9d891f08339c82011c8caf712a27daf7b Mon Sep 17 00:00:00 2001 From: Eugene-Mark Date: Sat, 31 Jul 2021 23:04:08 +0800 Subject: [PATCH] [PMEM-SHUFFLE-37] Add start-rpmp.sh and stop-rpmp.sh --- rpmp/bin/start-rpmp.sh | 72 ++++++++++++++++++++++++++++++++++++++++++ rpmp/bin/stop-rpmp.sh | 48 ++++++++++++++++++++++++++++ 2 files changed, 120 insertions(+) create mode 100755 rpmp/bin/start-rpmp.sh create mode 100755 rpmp/bin/stop-rpmp.sh diff --git a/rpmp/bin/start-rpmp.sh b/rpmp/bin/start-rpmp.sh new file mode 100755 index 00000000..9c45c5f5 --- /dev/null +++ b/rpmp/bin/start-rpmp.sh @@ -0,0 +1,72 @@ +#!/usr/bin/env bash + +if [ -L ${BASH_SOURCE-$0} ]; then + FWDIR=$(dirname $(readlink "${BASH_SOURCE-$0}")) +else + FWDIR=$(dirname "${BASH_SOURCE-$0}") +fi + +if [[ -z "${RPMP_HOME}" ]]; then + export RPMP_HOME=$(cd "${FWDIR}/.."; pwd) +fi +export BIN_HOME=$RPMP_HOME/bin +export CONFIG_HOME=$RPMP_HOME/config +export LOG_HOME=$RPMP_HOME/log +PROXY_SERVER_LOG_PATH=$LOG_HOME/proxy-server.log +DATA_SERVER_LOG_PATH=$LOG_HOME/data-server.log +PROXY_SERVER_PID_PATH=/tmp/rpmp-proxy-server.pid +DATA_SERVER_PID_PATH=/tmp/rpmp-data-server.pid + +#Keep this arg for future use. +USER_VARGS= +while [ $# != 0 ]; do + case "$1" in + "--help" | "-h") + echo "--help -h Show this usage information" + exit + shift + ;; + *) + USER_VARGS+=" $1" + shift + ;; + esac +done + +CONFIG_FILE="$CONFIG_HOME/rpmp.conf" +PROXY_ADDR_KEY="rpmp.network.proxy.address" +SERVER_ADDR_KEY="rpmp.network.server.address" +PROXY_ADDR= +SERVER_ADDR= + +while IFS= read -r line; do + tokens=( $line ) + if [ "${tokens[0]}" = "$PROXY_ADDR_KEY" ]; then + PROXY_ADDR=${tokens[1]} + elif [ "${tokens[0]}" = "$SERVER_ADDR_KEY" ]; then + SERVER_ADDR=${tokens[1]} + fi +done < $CONFIG_FILE + +#TODO: check if current process is running + +#Separate address by ','. +IFS=',' +#Start RPMP proxy +for addr in $PROXY_ADDR; do + echo "Starting RPMP proxy on $addr.." + #Pass addr to RPMP proxy + ssh $addr "cd ${BIN_HOME}; mkdir -p ${LOG_HOME}; \ + ./proxy-server --current_proxy_addr $addr --log ${PROXY_SERVER_LOG_PATH} >> ${PROXY_SERVER_LOG_PATH} & \ + echo \$! > ${PROXY_SERVER_PID_PATH}" +done + +# TODO: parse addr in main.cc +#Start RPMP server +for addr in $SERVER_ADDR; do + echo "Starting RPMP server on $addr.." + #Pass addr to RPMP server + ssh $addr "cd ${BIN_HOME}; mkdir -p ${LOG_HOME}; \ + ./data-server --address $addr --log ${DATA_SERVER_LOG_PATH} >> ${DATA_SERVER_LOG_PATH} & \ + echo \$! > ${DATA_SERVER_PID_PATH}" +done \ No newline at end of file diff --git a/rpmp/bin/stop-rpmp.sh b/rpmp/bin/stop-rpmp.sh new file mode 100755 index 00000000..b74b5cdd --- /dev/null +++ b/rpmp/bin/stop-rpmp.sh @@ -0,0 +1,48 @@ +#!/usr/bin/env bash + +if [ -L ${BASH_SOURCE-$0} ]; then + FWDIR=$(dirname $(readlink "${BASH_SOURCE-$0}")) +else + FWDIR=$(dirname "${BASH_SOURCE-$0}") +fi + +if [[ -z "${RPMP_HOME}" ]]; then + export RPMP_HOME=$(cd "${FWDIR}/.."; pwd) +fi +export BIN_HOME=$RPMP_HOME/bin +export CONFIG_HOME=$RPMP_HOME/config +PROXY_PID_FILE_PATH=/tmp/rpmp-proxy.pid +SERVER_PID_FILE_PATH=/tmp/rpmp-server.pid + +CONFIG_FILE="$CONFIG_HOME/rpmp.conf" +PROXY_ADDR_KEY="rpmp.network.proxy.address" +SERVER_ADDR_KEY="rpmp.network.server.address" +PROXY_ADDR= +SERVER_ADDR= + +while IFS= read -r line; do + tokens=( $line ) + if [ "${tokens[0]}" = "$PROXY_ADDR_KEY" ]; then + PROXY_ADDR=${tokens[1]} + elif [ "${tokens[0]}" = "$SERVER_ADDR_KEY" ]; then + SERVER_ADDR=${tokens[1]} + fi +done < $CONFIG_FILE + +. "$BIN_HOME/common.sh" + +#Separate address by ','. +IFS=',' + +#Stop RPMP server +for addr in $SERVER_ADDR; do + echo "Stopping RPMP server on $addr.." + ssh $addr "PID=\$(cat SERVER_PID_FILE_PATH 2>/dev/null); kill -9 \$PID > /dev/null 2>&1" +done + +#Stop RPMP proxy +for addr in $PROXY_ADDR; do + echo "Stopping RPMP proxy on $addr.." + #Pass addr to RPMP proxy + ssh $addr "PID=\$(cat $PROXY_PID_FILE_PATH 2>/dev/null); kill -9 \$PID > /dev/null 2>&1" +done