Last active
December 16, 2015 22:48
-
-
Save mattotodd/5509166 to your computer and use it in GitHub Desktop.
Revisions
-
mattotodd renamed this gist
May 3, 2013 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewing
File renamed without changes. -
mattotodd created this gist
May 3, 2013 .There are no files selected for viewing
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 charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,219 @@ #!/bin/sh # # /etc/init.d/elasticsearch -- startup script for Elasticsearch # # Written by Miquel van Smoorenburg <[email protected]>. # Modified for Debian GNU/Linux by Ian Murdock <[email protected]>. # Modified for Tomcat by Stefan Gybas <[email protected]>. # Modified for Tomcat6 by Thierry Carrez <[email protected]>. # Additional improvements by Jason Brittain <[email protected]>. # Modified by Nicolas Huray for ElasticSearch <[email protected]>. # ### BEGIN INIT INFO # Provides: elasticsearch # Required-Start: $all # Required-Stop: $all # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Starts elasticsearch # Description: Starts elasticsearch using start-stop-daemon ### END INIT INFO set -e PATH=/bin:/usr/bin:/sbin:/usr/sbin NAME=elasticsearch DESC="ElasticSearch Server" DEFAULT=/etc/default/$NAME if [ `id -u` -ne 0 ]; then echo "You need root privileges to run this script" exit 1 fi . /lib/lsb/init-functions if [ -r /etc/default/rcS ]; then . /etc/default/rcS fi # The following variables can be overwritten in $DEFAULT # Run ElasticSearch as this user ID and group ID ES_USER=elasticsearch ES_GROUP=elasticsearch # The first existing directory is used for JAVA_HOME (if JAVA_HOME is not defined in $DEFAULT) JDK_DIRS="/usr/lib/jvm/java-7-oracle /usr/lib/jvm/java-7-openjdk /usr/lib/jvm/java-7-openjdk-amd64/ /usr/lib/jvm/java-7-openjdk-i386/ /usr/lib/jvm/java-6-sun /usr/lib/jvm/java-6-openjdk /usr/lib/jvm/java-6-openjdk-amd64 /usr/lib/jvm/java-6-openjdk-i386" # Look for the right JVM to use for jdir in $JDK_DIRS; do if [ -r "$jdir/bin/java" -a -z "${JAVA_HOME}" ]; then JAVA_HOME="$jdir" fi done export JAVA_HOME # Directory where the ElasticSearch binary distribution resides ES_HOME=/usr/share/$NAME # Heap Size (defaults to 256m min, 1g max) #ES_HEAP_SIZE=2g # Heap new generation #ES_HEAP_NEWSIZE= # max direct memory #ES_DIRECT_SIZE= # Additional Java OPTS #ES_JAVA_OPTS= # Maximum number of open files MAX_OPEN_FILES=65535 # Maximum amount of locked memory #MAX_LOCKED_MEMORY= # ElasticSearch log directory LOG_DIR=/var/log/$NAME # ElasticSearch data directory DATA_DIR=/var/lib/$NAME # ElasticSearch work directory WORK_DIR=/tmp/$NAME # ElasticSearch configuration directory CONF_DIR=/etc/$NAME # ElasticSearch configuration file (elasticsearch.yml) CONF_FILE=$CONF_DIR/elasticsearch.yml # End of variables that can be overwritten in $DEFAULT # overwrite settings from default file if [ -f "$DEFAULT" ]; then . "$DEFAULT" fi # Define other required variables PID_FILE=/var/run/$NAME.pid DAEMON=$ES_HOME/bin/elasticsearch DAEMON_OPTS="-p $PID_FILE -Des.default.config=$CONF_FILE -Des.default.path.home=$ES_HOME -Des.default.path.logs=$LOG_DIR -Des.default.path.data=$DATA_DIR -Des.default.path.work=$WORK_DIR -Des.default.path.conf=$CONF_DIR" export ES_HEAP_SIZE export ES_HEAP_NEWSIZE export ES_DIRECT_SIZE export ES_JAVA_OPTS # Check DAEMON exists test -x $DAEMON || exit 0 case "$1" in start) if [ -z "$JAVA_HOME" ]; then log_failure_msg "no JDK found - please set JAVA_HOME" exit 1 fi if [ -n "$MAX_LOCKED_MEMORY" -a -z "$ES_HEAP_SIZE" ]; then log_failure_msg "MAX_LOCKED_MEMORY is set - ES_HEAP_SIZE must also be set" exit 1 fi log_daemon_msg "Starting $DESC" if start-stop-daemon --test --start --pidfile "$PID_FILE" \ --user "$ES_USER" --exec "$JAVA_HOME/bin/java" \ >/dev/null; then # Prepare environment mkdir -p "$LOG_DIR" "$DATA_DIR" "$WORK_DIR" && chown "$ES_USER":"$ES_GROUP" "$LOG_DIR" "$DATA_DIR" "$WORK_DIR" touch "$PID_FILE" && chown "$ES_USER":"$ES_GROUP" "$PID_FILE" if [ -n "$MAX_OPEN_FILES" ]; then ulimit -n $MAX_OPEN_FILES fi if [ -n "$MAX_LOCKED_MEMORY" ]; then ulimit -l $MAX_LOCKED_MEMORY fi # Start Daemon start-stop-daemon --start -b --user "$ES_USER" -c "$ES_USER" --pidfile "$PID_FILE" --exec /bin/bash -- -c "$DAEMON $DAEMON_OPTS" sleep 1 if start-stop-daemon --test --start --pidfile "$PID_FILE" \ --user "$ES_USER" --exec "$JAVA_HOME/bin/java" \ >/dev/null; then if [ -f "$PID_FILE" ]; then rm -f "$PID_FILE" fi log_end_msg 1 else log_end_msg 0 fi else log_progress_msg "(already running)" log_end_msg 0 fi ;; stop) log_daemon_msg "Stopping $DESC" set +e if [ -f "$PID_FILE" ]; then start-stop-daemon --stop --pidfile "$PID_FILE" \ --user "$ES_USER" \ --retry=TERM/20/KILL/5 >/dev/null if [ $? -eq 1 ]; then log_progress_msg "$DESC is not running but pid file exists, cleaning up" elif [ $? -eq 3 ]; then PID="`cat $PID_FILE`" log_failure_msg "Failed to stop $DESC (pid $PID)" exit 1 fi rm -f "$PID_FILE" else log_progress_msg "(not running)" fi log_end_msg 0 set -e ;; status) set +e start-stop-daemon --test --start --pidfile "$PID_FILE" \ --user "$ES_USER" --exec "$JAVA_HOME/bin/java" \ >/dev/null 2>&1 if [ "$?" = "0" ]; then if [ -f "$PID_FILE" ]; then log_success_msg "$DESC is not running, but pid file exists." exit 1 else log_success_msg "$DESC is not running." exit 3 fi else log_success_msg "$DESC is running with pid `cat $PID_FILE`" fi set -e ;; restart|force-reload) if [ -f "$PID_FILE" ]; then $0 stop sleep 1 fi $0 start ;; *) log_success_msg "Usage: $0 {start|stop|restart|force-reload|status}" exit 1 ;; esac exit 0