| #!/bin/bash -eu |
| |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you 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 |
| # |
| # http://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. |
| |
| if [ "$#" -gt 4 ] || [ "$#" -eq 0 ] |
| then |
| >&2 echo "usage: $0 <service> [conf-dir]" |
| exit 1 |
| fi |
| |
| PWD="$(pwd)" |
| WHEREAMI="$(dirname "$0")" |
| WHATAMI="$1" |
| |
| if [ "$#" -eq 1 ] |
| then |
| CONFDIR="$WHEREAMI/../conf" |
| else |
| CONFDIR="$2" |
| fi |
| |
| CONFDIR="$(cd "$CONFDIR">/dev/null && pwd)" |
| WHEREAMI="$(cd "$WHEREAMI">/dev/null && pwd)" |
| |
| LOG_DIR="${DRUID_LOG_DIR:=${WHEREAMI}/../log}" |
| # Remove possible ending slash |
| if [[ $LOG_DIR == */ ]]; |
| then |
| LOG_DIR=${LOG_DIR%?} |
| fi |
| if [ ! -d "$LOG_DIR" ]; then mkdir -p $LOG_DIR; fi |
| |
| echo "Running [$1], logging to [$LOG_DIR/$1.log] if no changes made to log4j2.xml" |
| |
| if [ "$WHATAMI" = 'coordinator-overlord' ] |
| then |
| SERVER_NAME=coordinator |
| else |
| SERVER_NAME="$WHATAMI" |
| fi |
| |
| |
| if [ ! -f "$CONFDIR"/$WHATAMI/main.config ]; |
| then |
| MAIN_CLASS="org.apache.druid.cli.Main server $SERVER_NAME" |
| else |
| MAIN_CLASS=`cat "$CONFDIR"/$WHATAMI/main.config | xargs` |
| fi |
| |
| cd "$WHEREAMI/.." |
| |
| CLASS_PATH="$CONFDIR"/"$WHATAMI":"$CONFDIR"/_common:"$CONFDIR"/_common/hadoop-xml:"$CONFDIR"/../_common:"$CONFDIR"/../_common/hadoop-xml:"$WHEREAMI/../lib/*" |
| |
| if [ "$#" -eq 3 ] || [ "$#" -eq 4 ] |
| then |
| # args: <service> <conf_path> <jvm_args> or <service> <conf_path> <jvm_args> <mm_task_count mm_task_java_props> |
| JVMARGS=`cat "$CONFDIR/_common/common.jvm.config" | xargs` |
| JVMARGS+=' ' |
| JVMARGS+=$3 |
| |
| if [ "$#" -eq 3 ] |
| then |
| # args: <service> <conf_path> <jvm_args> |
| exec "$WHEREAMI"/run-java -Ddruid.node.type=$1 "-Ddruid.log.path=$LOG_DIR" $JVMARGS \ |
| -cp $CLASS_PATH $MAIN_CLASS |
| else |
| # args: <service> <conf_path> <jvm_args> <mm_task_count mm_task_java_props> |
| exec "$WHEREAMI"/run-java -Ddruid.node.type=$1 $4 "-Ddruid.log.path=$LOG_DIR" $JVMARGS \ |
| -cp $CLASS_PATH $MAIN_CLASS |
| fi |
| else |
| # args: <service> <conf_path> |
| exec "$WHEREAMI"/run-java -Ddruid.node.type=$1 "-Ddruid.log.path=$LOG_DIR" \ |
| `cat "$CONFDIR"/"$WHATAMI"/jvm.config | xargs` \ |
| -cp $CLASS_PATH $MAIN_CLASS |
| fi |