svn commit: r414918 - in head/textproc/elasticsearch2: . files

Tom Judge tj at FreeBSD.org
Tue May 10 04:38:13 UTC 2016


Author: tj
Date: Tue May 10 04:38:12 2016
New Revision: 414918
URL: https://svnweb.freebsd.org/changeset/ports/414918

Log:
  Add multi instance support for boxes with more that 64Gb RAM

Modified:
  head/textproc/elasticsearch2/Makefile
  head/textproc/elasticsearch2/files/elasticsearch.in

Modified: head/textproc/elasticsearch2/Makefile
==============================================================================
--- head/textproc/elasticsearch2/Makefile	Tue May 10 03:36:13 2016	(r414917)
+++ head/textproc/elasticsearch2/Makefile	Tue May 10 04:38:12 2016	(r414918)
@@ -3,6 +3,7 @@
 
 PORTNAME=	elasticsearch
 PORTVERSION=	2.3.0
+PORTREVISION=	1
 CATEGORIES=	textproc java devel
 MASTER_SITES=	http://download.elasticsearch.org/${PORTNAME}/${PORTNAME}/ \
 		http://mirrors.rit.edu/zi/

Modified: head/textproc/elasticsearch2/files/elasticsearch.in
==============================================================================
--- head/textproc/elasticsearch2/files/elasticsearch.in	Tue May 10 03:36:13 2016	(r414917)
+++ head/textproc/elasticsearch2/files/elasticsearch.in	Tue May 10 04:38:12 2016	(r414918)
@@ -37,7 +37,8 @@ load_rc_config ${name}
 : ${elasticsearch_tmp:="/var/tmp/elasticsearch"}
 
 required_files="${elasticsearch_config}/elasticsearch.yml"
-pidfile="/var/run/${name}.pid"
+_pidprefix="/var/run/elasticsearch"
+pidfile="${_pidprefix}.pid"
 
 extra_commands="console status"
 console_cmd="elasticsearch_console"
@@ -49,80 +50,118 @@ command_args="-d --pidfile=${pidfile}"
 
 elasticsearch_precmd()
 {
-	rc_pid=$(elasticsearch_check_pidfile $pidfile)
-
-	if [ -n "$rc_pid" ]; then
-		[ -n "$rc_fast" ] && return 0
-		echo "${name} is already running: $rc_pid."
-		return 1
-	fi
-        touch ${pidfile}
-        chown ${elasticsearch_user}:${elasticsearch_group} ${pidfile}
-	/usr/bin/install -d -o ${elasticsearch_user} -g ${elasticsearch_group} -m 750 ${elasticsearch_tmp}
-	/usr/bin/install -d -o ${elasticsearch_user} -g ${elasticsearch_group} -m 750 /var/db/elasticsearch
-	/usr/bin/install -d -o ${elasticsearch_user} -g ${elasticsearch_group} -m 750 /var/log/elasticsearch
+    touch ${pidfile}
+    chown ${elasticsearch_user}:${elasticsearch_group} ${pidfile}
+    /usr/bin/install -d -o ${elasticsearch_user} -g ${elasticsearch_group} -m 750 ${elasticsearch_tmp}
+    /usr/bin/install -d -o ${elasticsearch_user} -g ${elasticsearch_group} -m 750 /var/db/elasticsearch
+    /usr/bin/install -d -o ${elasticsearch_user} -g ${elasticsearch_group} -m 750 /var/log/elasticsearch
 }
 
-
 elasticsearch_console()
 {
-	rc_pid=$(elasticsearch_check_pidfile $pidfile)
-
-	if [ -n "$rc_pid" ]; then
-		[ -n "$rc_fast" ] && return 0
-		echo "${name} is already running: $rc_pid."
-		return 1
-	fi
-
-	command_args=""
-	run_rc_command "start"
+    command_args=""
+    run_rc_command "start"
 }
 
 
 elasticsearch_stop()
 {
-	rc_pid=$(elasticsearch_check_pidfile $pidfile)
+    rc_pid=$(elasticsearch_check_pidfile $pidfile)
 
-	if [ -z "$rc_pid" ]; then
-		[ -n "$rc_fast" ] && return 0
-		echo "${name} not running? (check $pidfile)."
-		return 1
-	fi
+    if [ -z "$rc_pid" ]; then
+        [ -n "$rc_fast" ] && return 0
+        echo "${name} not running? (check $pidfile)."
+        return 1
+    fi
 
-	echo "Stopping ${name}."
-	kill ${rc_pid} 2> /dev/null
+    echo "Stopping ${name}."
+    kill ${rc_pid} 2> /dev/null
 }
 
 elasticsearch_status()
 {
-	rc_pid=$(elasticsearch_check_pidfile $pidfile)
+    rc_pid=$(elasticsearch_check_pidfile $pidfile)
 
-	if [ -z "$rc_pid" ]; then
-		[ -n "$rc_fast" ] && return 0
-		echo "${name} not running? (check $pidfile)."
-		return 1
-	fi
-	echo "${name} is running as pid ${rc_pid}."
+    if [ -z "$rc_pid" ]; then
+        [ -n "$rc_fast" ] && return 0
+        echo "${name} not running? (check $pidfile)."
+        return 1
+    fi
+    echo "${name} is running as pid ${rc_pid}."
 }
 
 elasticsearch_check_pidfile()
 {
-	_pidfile=$1
-	if [ -z "$_pidfile" ]; then
-		err 3 'USAGE: elasticsearch_check_pidfile pidfile'
-	fi
-	if [ ! -f $_pidfile ]; then
-		debug "pid file ($_pidfile): not readable."
-		return
-	fi
-	read _pid _junk < $_pidfile
-	if [ -z "$_pid" ]; then
-		debug "pid file ($_pidfile): no pid in file."
-		return
-	fi
-	if [ -n "`/usr/bin/su -m ${elasticsearch_user} -c '%%LOCALBASE%%/bin/jps -l' | grep -e "^$_pid"`" ]; then
-		echo -n $_pid
-	fi
+    _pidfile=$1
+    if [ -z "$_pidfile" ]; then
+        err 3 'USAGE: elasticsearch_check_pidfile pidfile'
+    fi
+    if [ ! -f $_pidfile ]; then
+        debug "pid file ($_pidfile): not readable."
+        return
+    fi
+    read _pid _junk < $_pidfile
+    if [ -z "$_pid" ]; then
+        debug "pid file ($_pidfile): no pid in file."
+        return
+    fi
+    if [ -n "`%%LOCALBASE%%/bin/jps -l | grep -e "^$_pid"`" ]; then
+        echo -n $_pid
+    fi
 }
+if [ -n "$2" ]; then
+    profile="$2"
+    if [ "x${elasticsearch_profiles}" != "x" ]; then
+        pidfile="${_pidprefix}.${profile}.pid"
+        eval elasticsearch_config="\${elasticsearch_${profile}_config:-}"
+        if [ "x${elasticsearch_config}" = "x" ]; then
+            echo "You must define a configuration  (elasticsearch_${profile}_config)"
+            exit 1
+        fi
+        required_files="${elasticsearch_config}/elasticsearch.yml"
+        eval elasticsearch_enable="\${elasticsearch_${profile}_enable:-${elasticsearch_enable}}"
+        eval elasticsearch_props="\${elasticsearch_${profile}_props:-${elasticsearch_props}}"
+        eval elasticsearch_min_mem="\${elasticsearch_${profile}_min_mem:-${elasticsearch_min_mem}}"
+        eval elasticsearch_max_mem="\${elasticsearchlimits_${profile}_enable:-${elasticsearch_max_mem}}"
+        eval elasticsearch_tmp="\${elasticsearchlimits_${profile}_args:-${elasticsearch_tmp}}"
+    else
+        echo "$0: extra argument ignored"
+    fi
+else
+    eval elasticsearch_envvars=${envvars}
+    if [ "x${elasticsearch_profiles}" != "x" -a "x$1" != "x" ]; then
+        for profile in ${elasticsearch_profiles}; do
+            eval _enable="\${elasticsearch_${profile}_enable}"
+            case "x${_enable:-${elasticsearch_enable}}" in
+            x|x[Nn][Oo]|x[Nn][Oo][Nn][Ee])
+                continue
+                ;;
+            x[Yy][Ee][Ss])
+                ;;
+            *)
+                if test -z "$_enable"; then
+                    _var=elasticsearch_enable
+                else
+                    _var=elasticsearch_"${profile}"_enable
+                fi
+                echo "Bad value" \
+                    "'${_enable:-${elasticsearch_enable}}'" \
+                    "for ${_var}. " \
+                    "Profile ${profile} skipped."
+                continue
+                ;;
+            esac
+            echo "===> elasticsearch profile: ${profile}"
+            /usr/local/etc/rc.d/elasticsearch $1 ${profile}
+            retcode="$?"
+            if [ "0${retcode}" -ne 0 ]; then
+                failed="${profile} (${retcode}) ${failed:-}"
+            else
+                success="${profile} ${success:-}"
+            fi
+        done
+        exit 0
+    fi
+fi
 
 run_rc_command "$1"


More information about the svn-ports-head mailing list