Created
May 25, 2018 06:54
-
-
Save Pamir/10a86de41f0a57bf1fc903c912a2263c to your computer and use it in GitHub Desktop.
elasticsearch /etc/rc.d/init.d
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# elasticsearch <summary> | |
# | |
# chkconfig: 2345 80 20 | |
# description: Starts and stops a single elasticsearch instance on this system | |
# | |
### BEGIN INIT INFO | |
# Provides: Elasticsearch | |
# Required-Start: $network $named | |
# Required-Stop: $network $named | |
# Default-Start: 2 3 4 5 | |
# Default-Stop: 0 1 6 | |
# Short-Description: This service manages the elasticsearch daemon | |
# Description: Elasticsearch is a very scalable, schema-free and high-performance search solution supporting multi-tenancy and near realtime search. | |
### END INIT INFO | |
# | |
# init.d / servicectl compatibility (openSUSE) | |
# | |
if [ -f /etc/rc.status ]; then | |
. /etc/rc.status | |
rc_reset | |
fi | |
# | |
# Source function library. | |
# | |
if [ -f /etc/rc.d/init.d/functions ]; then | |
. /etc/rc.d/init.d/functions | |
fi | |
# Sets the default values for elasticsearch variables used in this script | |
ES_HOME="/usr/share/elasticsearch" | |
MAX_OPEN_FILES=65536 | |
MAX_MAP_COUNT=262144 | |
ES_PATH_CONF="/etc/elasticsearch" | |
PID_DIR="/var/run/elasticsearch" | |
# Source the default env file | |
ES_ENV_FILE="/etc/sysconfig/elasticsearch" | |
if [ -f "$ES_ENV_FILE" ]; then | |
. "$ES_ENV_FILE" | |
fi | |
# ES_USER and ES_GROUP settings were removed | |
if [ ! -z "$ES_USER" ] || [ ! -z "$ES_GROUP" ]; then | |
echo "ES_USER and ES_GROUP settings are no longer supported. To run as a custom user/group use the archive distribution of Elasticsearch." | |
exit 1 | |
fi | |
exec="$ES_HOME/bin/elasticsearch" | |
prog="elasticsearch" | |
pidfile="$PID_DIR/${prog}.pid" | |
export ES_JAVA_OPTS | |
export JAVA_HOME | |
export ES_PATH_CONF | |
export ES_STARTUP_SLEEP_TIME | |
lockfile=/var/lock/subsys/$prog | |
if [ ! -x "$exec" ]; then | |
echo "The elasticsearch startup script does not exists or it is not executable, tried: $exec" | |
exit 1 | |
fi | |
checkJava() { | |
if [ -x "$JAVA_HOME/bin/java" ]; then | |
JAVA="$JAVA_HOME/bin/java" | |
else | |
JAVA=`which java` | |
fi | |
if [ ! -x "$JAVA" ]; then | |
echo "Could not find any executable java binary. Please install java in your PATH or set JAVA_HOME" | |
exit 1 | |
fi | |
} | |
start() { | |
checkJava | |
[ -x $exec ] || exit 5 | |
if [ -n "$MAX_OPEN_FILES" ]; then | |
ulimit -n $MAX_OPEN_FILES | |
fi | |
if [ -n "$MAX_LOCKED_MEMORY" ]; then | |
ulimit -l $MAX_LOCKED_MEMORY | |
fi | |
if [ -n "$MAX_MAP_COUNT" -a -f /proc/sys/vm/max_map_count ]; then | |
sysctl -q -w vm.max_map_count=$MAX_MAP_COUNT | |
fi | |
# Ensure that the PID_DIR exists (it is cleaned at OS startup time) | |
if [ -n "$PID_DIR" ] && [ ! -e "$PID_DIR" ]; then | |
mkdir -p "$PID_DIR" && chown elasticsearch:elasticsearch "$PID_DIR" | |
fi | |
if [ -n "$pidfile" ] && [ ! -e "$pidfile" ]; then | |
touch "$pidfile" && chown elasticsearch:elasticsearch "$pidfile" | |
fi | |
cd $ES_HOME | |
echo -n $"Starting $prog: " | |
# if not running, start it up here, usually something like "daemon $exec" | |
daemon --user elasticsearch --pidfile $pidfile $exec -p $pidfile -d | |
retval=$? | |
echo | |
[ $retval -eq 0 ] && touch $lockfile | |
return $retval | |
} | |
stop() { | |
echo -n $"Stopping $prog: " | |
# stop it here, often "killproc $prog" | |
killproc -p $pidfile -d 86400 $prog | |
retval=$? | |
echo | |
[ $retval -eq 0 ] && rm -f $lockfile | |
return $retval | |
} | |
restart() { | |
stop | |
start | |
} | |
reload() { | |
restart | |
} | |
force_reload() { | |
restart | |
} | |
rh_status() { | |
# run checks to determine if the service is running or use generic status | |
status -p $pidfile $prog | |
} | |
rh_status_q() { | |
rh_status >/dev/null 2>&1 | |
} | |
case "$1" in | |
start) | |
rh_status_q && exit 0 | |
$1 | |
;; | |
stop) | |
rh_status_q || exit 0 | |
$1 | |
;; | |
restart) | |
$1 | |
;; | |
reload) | |
rh_status_q || exit 7 | |
$1 | |
;; | |
force-reload) | |
force_reload | |
;; | |
status) | |
rh_status | |
;; | |
condrestart|try-restart) | |
rh_status_q || exit 0 | |
restart | |
;; | |
*) | |
echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" | |
exit 2 | |
esac | |
exit $? | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment