Date: Thu, 22 Feb 2018 23:03:41 +0000 (UTC) From: Mark Felder <feld@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r462650 - in head/textproc/elasticsearch5: . files Message-ID: <201802222303.w1MN3faf001909@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: feld Date: Thu Feb 22 23:03:41 2018 New Revision: 462650 URL: https://svnweb.freebsd.org/changeset/ports/462650 Log: textproc/elasticsearch5: Use native facilites for manging the process start/stop/status will behave correctly with procname set. This now prevents Elastic from starting when a process is already running, stops cleanly, and also handles multiple profiles correctly: if only some of the profile processes are running, a "service elasticsearch start" will only start the profiles that are not detected as running already. All of this comes with the caveat that Elastic is slow to start up and write its pidfile, so if you are too quick it will allow duplicate processes to start. Here be JVM dragons. Approved by: portmgr (with hat) MFH: 2018Q1 Modified: head/textproc/elasticsearch5/Makefile head/textproc/elasticsearch5/files/elasticsearch.in Modified: head/textproc/elasticsearch5/Makefile ============================================================================== --- head/textproc/elasticsearch5/Makefile Thu Feb 22 22:59:37 2018 (r462649) +++ head/textproc/elasticsearch5/Makefile Thu Feb 22 23:03:41 2018 (r462650) @@ -3,7 +3,7 @@ PORTNAME= elasticsearch PORTVERSION= 5.3.0 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= textproc java devel MASTER_SITES= https://artifacts.elastic.co/downloads/${PORTNAME}/ \ http://mirrors.rit.edu/zi/ @@ -51,7 +51,8 @@ ELASTIC_LOGDIR= /var/log/elasticsearch SUB_LIST= SEARCHUSER=${SEARCHUSER} \ SEARCHGROUP=${SEARCHGROUP} \ - PORTVERSION=${PORTVERSION} + PORTVERSION=${PORTVERSION} \ + JAVA=${JAVA} SUB_FILES= pkg-message PLIST_SUB+= SEARCHUSER=${SEARCHUSER} \ SEARCHGROUP=${SEARCHGROUP} \ Modified: head/textproc/elasticsearch5/files/elasticsearch.in ============================================================================== --- head/textproc/elasticsearch5/files/elasticsearch.in Thu Feb 22 22:59:37 2018 (r462649) +++ head/textproc/elasticsearch5/files/elasticsearch.in Thu Feb 22 23:03:41 2018 (r462650) @@ -36,12 +36,11 @@ load_rc_config ${name} required_files="${elasticsearch_config}/elasticsearch.yml" _pidprefix=/var/run/elasticsearch pidfile=${_pidprefix}.pid +procname=%%JAVA%% extra_commands="console status" console_cmd=elasticsearch_console start_precmd=elasticsearch_precmd -status_cmd=elasticsearch_status -stop_cmd=elasticsearch_stop command=%%PREFIX%%/lib/elasticsearch/bin/elasticsearch command_args="-d --pidfile=${pidfile} -Epath.conf=${elasticsearch_config}" @@ -59,52 +58,6 @@ elasticsearch_console() run_rc_command "start" } -elasticsearch_stop() -{ - 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 "Stopping ${name}." - kill $sig_stop ${rc_pid} - wait_for_pids ${rc_pid} -} - -elasticsearch_status() -{ - 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}." -} - -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 "`%%PREFIX%%/bin/jps -l | grep -e "^$_pid"`" ]; then - echo -n $_pid - fi -} if [ -n "$2" ]; then profile="$2" if [ "x${elasticsearch_profiles}" != "x" ]; then
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201802222303.w1MN3faf001909>