mirror of
https://git.freebsd.org/ports.git
synced 2025-07-18 01:39:16 -04:00
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
This commit is contained in:
parent
b2df79a202
commit
dae3775e5b
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=462650
2 changed files with 4 additions and 50 deletions
|
@ -3,7 +3,7 @@
|
||||||
|
|
||||||
PORTNAME= elasticsearch
|
PORTNAME= elasticsearch
|
||||||
PORTVERSION= 5.3.0
|
PORTVERSION= 5.3.0
|
||||||
PORTREVISION= 2
|
PORTREVISION= 3
|
||||||
CATEGORIES= textproc java devel
|
CATEGORIES= textproc java devel
|
||||||
MASTER_SITES= https://artifacts.elastic.co/downloads/${PORTNAME}/ \
|
MASTER_SITES= https://artifacts.elastic.co/downloads/${PORTNAME}/ \
|
||||||
http://mirrors.rit.edu/zi/
|
http://mirrors.rit.edu/zi/
|
||||||
|
@ -51,7 +51,8 @@ ELASTIC_LOGDIR= /var/log/elasticsearch
|
||||||
|
|
||||||
SUB_LIST= SEARCHUSER=${SEARCHUSER} \
|
SUB_LIST= SEARCHUSER=${SEARCHUSER} \
|
||||||
SEARCHGROUP=${SEARCHGROUP} \
|
SEARCHGROUP=${SEARCHGROUP} \
|
||||||
PORTVERSION=${PORTVERSION}
|
PORTVERSION=${PORTVERSION} \
|
||||||
|
JAVA=${JAVA}
|
||||||
SUB_FILES= pkg-message
|
SUB_FILES= pkg-message
|
||||||
PLIST_SUB+= SEARCHUSER=${SEARCHUSER} \
|
PLIST_SUB+= SEARCHUSER=${SEARCHUSER} \
|
||||||
SEARCHGROUP=${SEARCHGROUP} \
|
SEARCHGROUP=${SEARCHGROUP} \
|
||||||
|
|
|
@ -36,12 +36,11 @@ load_rc_config ${name}
|
||||||
required_files="${elasticsearch_config}/elasticsearch.yml"
|
required_files="${elasticsearch_config}/elasticsearch.yml"
|
||||||
_pidprefix=/var/run/elasticsearch
|
_pidprefix=/var/run/elasticsearch
|
||||||
pidfile=${_pidprefix}.pid
|
pidfile=${_pidprefix}.pid
|
||||||
|
procname=%%JAVA%%
|
||||||
|
|
||||||
extra_commands="console status"
|
extra_commands="console status"
|
||||||
console_cmd=elasticsearch_console
|
console_cmd=elasticsearch_console
|
||||||
start_precmd=elasticsearch_precmd
|
start_precmd=elasticsearch_precmd
|
||||||
status_cmd=elasticsearch_status
|
|
||||||
stop_cmd=elasticsearch_stop
|
|
||||||
command=%%PREFIX%%/lib/elasticsearch/bin/elasticsearch
|
command=%%PREFIX%%/lib/elasticsearch/bin/elasticsearch
|
||||||
command_args="-d --pidfile=${pidfile} -Epath.conf=${elasticsearch_config}"
|
command_args="-d --pidfile=${pidfile} -Epath.conf=${elasticsearch_config}"
|
||||||
|
|
||||||
|
@ -59,52 +58,6 @@ elasticsearch_console()
|
||||||
run_rc_command "start"
|
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
|
if [ -n "$2" ]; then
|
||||||
profile="$2"
|
profile="$2"
|
||||||
if [ "x${elasticsearch_profiles}" != "x" ]; then
|
if [ "x${elasticsearch_profiles}" != "x" ]; then
|
||||||
|
|
Loading…
Add table
Reference in a new issue