aboutsummaryrefslogtreecommitdiffstats
path: root/community/elasticsearch/elasticsearch.initd
diff options
context:
space:
mode:
authorStuart Cardall <developer@it-offshore.co.uk>2017-02-19 17:37:26 +0000
committerWilliam Pitcock <nenolod@dereferenced.org>2017-03-04 19:42:00 +0000
commite8e5d8ec59aec693b0bec7d53c968b0e1673dc96 (patch)
tree1e16d15f8aa50312ec06cf9a675b030c5abd9b68 /community/elasticsearch/elasticsearch.initd
parent0ac6c3e84a420ce26c08e3bcae796cc1afa821d1 (diff)
downloadaports-e8e5d8ec59aec693b0bec7d53c968b0e1673dc96.tar.bz2
aports-e8e5d8ec59aec693b0bec7d53c968b0e1673dc96.tar.xz
community/elasticsearch: update to 5.2.1 / use supervise-daemon
ES now uses $ES_CONF_DIR/jvm.options to set java options so duplicate java options have been removed from the initd / conf.d service supervision with OpenRC's supervise-daemon added added README.alpine with notes for upgrading ES 2.x => 5.x
Diffstat (limited to 'community/elasticsearch/elasticsearch.initd')
-rw-r--r--community/elasticsearch/elasticsearch.initd89
1 files changed, 48 insertions, 41 deletions
diff --git a/community/elasticsearch/elasticsearch.initd b/community/elasticsearch/elasticsearch.initd
index 91dd6809be..660c822437 100644
--- a/community/elasticsearch/elasticsearch.initd
+++ b/community/elasticsearch/elasticsearch.initd
@@ -1,4 +1,5 @@
#!/sbin/openrc-run
+supervisor=supervise-daemon
description="A Distributed RESTful Search Engine."
@@ -10,7 +11,6 @@ name="Elasticsearch"
: ${user:="elastico"}
: ${group:="$(id -gn $user)"}
-: ${java_heap_size:="256"}
: ${conf_dir:="/etc/elasticsearch/${instance_name#_default}"}
: ${home_dir:="/var/lib/elasticsearch/$instance_name"}
@@ -21,57 +21,53 @@ name="Elasticsearch"
: ${default_work_dir:="/var/tmp/elasticsearch/$instance_name"}
: ${create_logs_dir:="yes"}
+elastic_opts="
+ -Epath.conf=$conf_dir
+ -Epath.data=$default_data_dir
+ -Epath.logs=$default_logs_dir
+ $elastic_opts
+ "
+
java_opts="
- -server
- -XX:+DisableExplicitGC
- -Djava.awt.headless=true
- -Dfile.encoding=utf-8
- -Xms${java_heap_size}M -Xmx${java_heap_size}M
- ${java_max_direct_mem_size:+"-XX:MaxDirectMemorySize=$java_max_direct_mem_size"}
- $java_opts"
-
-lib_dir="/usr/share/java/elasticsearch/lib"
-classpath="$lib_dir/elasticsearch-@@ES_VERSION@@.jar:$lib_dir/*"
-
-command="java"
-command_args="
- $java_opts
- -Des.path.conf='$conf_dir'
- -Des.path.home='$home_dir'
- -Des.default.path.data='$default_data_dir'
- -Des.default.path.plugins='$default_plugins_dir'
- -Des.default.path.work='$default_work_dir'
- -Des.default.path.logs='$default_logs_dir'
- -Des.default.path.script='$default_script_dir'
- -cp $classpath
- org.elasticsearch.bootstrap.Elasticsearch start
- $elastic_opts"
-command_background="yes"
-
-start_stop_daemon_args="
- --interpreted
- --chdir '$home_dir'
- --user $user:$group"
-pidfile="/run/$SVCNAME.pid"
-retry="TERM/20/KILL/5"
-
-required_files="$conf_dir/elasticsearch.yml $conf_dir/logging.yml"
-
-depend() {
- use net
+ -Des.path.home='$home_dir'
+ -Des.default.path.plugins='$default_plugins_dir'
+ -Des.default.path.work='$default_work_dir'
+ -Des.default.path.script='$default_script_dir'
+ $java_opts
+ "
+
+# env variable for: -XX:MaxDirectMemorySize
+# export ES_DIRECT_SIZE=
+export ES_JAVA_OPTS="$java_opts"
+export ES_JVM_OPTIONS="$conf_dir/jvm.options"
+
+nice="0"
+pidfile="/run/$SVCNAME.sd.pid"
+supervise_daemon_args="-u $user -g $group -p $pidfile -N $nice"
+command=/usr/share/java/elasticsearch/bin/elasticsearch
+command_args="$elastic_opts 1>/dev/null 2>>$default_logs_dir/error.log"
+
+depends() {
+ use net
+}
+
+in_contr() {
+ grep "container=" /proc/1/environ
}
start_pre() {
local dir
# Note: checkpath doesn't create intermediate directories.
- for dir in "$home_dir" "$default_data_dir" "$default_work_dir" "$default_script_dir"; do
+ for dir in "$home_dir" "$default_data_dir" "$default_work_dir" "$default_plugins_dir" "$default_script_dir"; do
mkdir -p "$(dirname "$dir")"
done
checkpath -d -o $user:$group -m755 "$home_dir"
+ checkpath -d -o $user:$group -m700 "$(dirname "$home_dir")"
checkpath -d -o $user:$group -m700 "$default_data_dir"
checkpath -d -o $user:$group -m700 "$default_work_dir"
+ checkpath -d -o $user:$group -m700 "$default_plugins_dir"
checkpath -d "$default_script_dir"
if yesno "$create_logs_dir"; then
@@ -80,7 +76,18 @@ start_pre() {
fi
if [ -n "$max_fd" ]; then
- ulimit -n "$max_fd" && einfo "Max open filedescriptors: $max_fd"
- return 0
+ if [ -z "$(in_contr)" ]; then
+ ulimit -n "$max_fd" && einfo "Max open filedescriptors: $max_fd"
+ else
+ einfo "Run 'ulimit -n $max_fd' on the container host"
+ fi
fi
+
+ if [ -n "$max_map_count" ]; then
+ if [ -z "$(in_contr)" ]; then
+ sysctl -q -w vm.max_map_count="$max_map_count" && einfo "vm.max_map_count: $max_map_count"
+ else
+ einfo "Run 'sysctl -w vm.max_map_count=$max_map_count' on the container host"
+ fi
+ fi
}