68 lines
1.6 KiB
Bash
68 lines
1.6 KiB
Bash
#!/bin/bash
|
|
|
|
set -e -o pipefail
|
|
|
|
JAVA_HOME=${JAVA_HOME:-/usr/lib/jvm/default-runtime}
|
|
ES_HOME=/usr/share/elasticsearch
|
|
|
|
# now set the classpath
|
|
ES_CLASSPATH="$ES_HOME/lib/*"
|
|
|
|
# now set the path to java
|
|
if [ ! -z "$JAVA_HOME" ]; then
|
|
JAVA="$JAVA_HOME/bin/java"
|
|
else
|
|
if [ "$(uname -s)" = "Darwin" ]; then
|
|
# OSX has a different structure
|
|
JAVA="$ES_HOME/jdk/Contents/Home/bin/java"
|
|
else
|
|
JAVA="$ES_HOME/jdk/bin/java"
|
|
fi
|
|
fi
|
|
|
|
if [ ! -x "$JAVA" ]; then
|
|
echo "could not find java in JAVA_HOME or bundled at $JAVA" >&2
|
|
exit 1
|
|
fi
|
|
|
|
# do not let JAVA_TOOL_OPTIONS slip in (as the JVM does by default)
|
|
if [ ! -z "$JAVA_TOOL_OPTIONS" ]; then
|
|
echo "warning: ignoring JAVA_TOOL_OPTIONS=$JAVA_TOOL_OPTIONS"
|
|
unset JAVA_TOOL_OPTIONS
|
|
fi
|
|
|
|
# JAVA_OPTS is not a built-in JVM mechanism but some people think it is so we
|
|
# warn them that we are not observing the value of $JAVA_OPTS
|
|
if [ ! -z "$JAVA_OPTS" ]; then
|
|
echo -n "warning: ignoring JAVA_OPTS=$JAVA_OPTS; "
|
|
echo "pass JVM parameters via ES_JAVA_OPTS"
|
|
fi
|
|
|
|
if [[ "$("$JAVA" -version 2>/dev/null)" =~ "Unable to map CDS archive" ]]; then
|
|
XSHARE="-Xshare:off"
|
|
else
|
|
XSHARE="-Xshare:auto"
|
|
fi
|
|
|
|
# check the Java version
|
|
"$JAVA" "$XSHARE" -cp "$ES_CLASSPATH" org.elasticsearch.tools.java_version_checker.JavaVersionChecker
|
|
|
|
export HOSTNAME=$HOSTNAME
|
|
|
|
if [ -z "$ES_PATH_CONF" ]; then
|
|
ES_PATH_CONF=/etc/elasticsearch
|
|
fi
|
|
|
|
# now make ES_PATH_CONF absolute
|
|
ES_PATH_CONF=`cd "$ES_PATH_CONF"; pwd`
|
|
|
|
ES_DISTRIBUTION_FLAVOR=default
|
|
ES_DISTRIBUTION_TYPE=rpm
|
|
ES_BUNDLED_JDK=false
|
|
|
|
if [ -z "$ES_TMPDIR" ]; then
|
|
ES_TMPDIR=`"$JAVA" -cp "$ES_CLASSPATH" org.elasticsearch.tools.launchers.TempDirectory`
|
|
fi
|
|
|
|
cd "$ES_HOME"
|