diff options
author | Stuart Cardall <developer@it-offshore.co.uk> | 2017-02-19 17:37:26 +0000 |
---|---|---|
committer | William Pitcock <nenolod@dereferenced.org> | 2017-03-04 19:42:00 +0000 |
commit | e8e5d8ec59aec693b0bec7d53c968b0e1673dc96 (patch) | |
tree | 1e16d15f8aa50312ec06cf9a675b030c5abd9b68 /community/elasticsearch/elasticsearch.initd | |
parent | 0ac6c3e84a420ce26c08e3bcae796cc1afa821d1 (diff) | |
download | aports-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.initd | 89 |
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 } |