aboutsummaryrefslogtreecommitdiffstats
path: root/textproc
diff options
context:
space:
mode:
authorfeld <feld@FreeBSD.org>2018-02-23 07:03:41 +0800
committerfeld <feld@FreeBSD.org>2018-02-23 07:03:41 +0800
commit718a7a5b74075a34524fbe934c8d2070f50a0223 (patch)
treed84a2760c568ff3f3df5e94f7c6f83c552e9020f /textproc
parentf35f3b1a01a6f332b9da05142240fc2b687477ec (diff)
downloadfreebsd-ports-gnome-718a7a5b74075a34524fbe934c8d2070f50a0223.tar.gz
freebsd-ports-gnome-718a7a5b74075a34524fbe934c8d2070f50a0223.tar.zst
freebsd-ports-gnome-718a7a5b74075a34524fbe934c8d2070f50a0223.zip
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
Diffstat (limited to 'textproc')
-rw-r--r--textproc/elasticsearch5/Makefile5
-rw-r--r--textproc/elasticsearch5/files/elasticsearch.in49
2 files changed, 4 insertions, 50 deletions
diff --git a/textproc/elasticsearch5/Makefile b/textproc/elasticsearch5/Makefile
index 4ede31eee3f7..0815d62eb44f 100644
--- a/textproc/elasticsearch5/Makefile
+++ b/textproc/elasticsearch5/Makefile
@@ -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} \
diff --git a/textproc/elasticsearch5/files/elasticsearch.in b/textproc/elasticsearch5/files/elasticsearch.in
index 925a3066dc37..2141a5edb8ff 100644
--- a/textproc/elasticsearch5/files/elasticsearch.in
+++ b/textproc/elasticsearch5/files/elasticsearch.in
@@ -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