aboutsummaryrefslogtreecommitdiffstats
path: root/community/elasticsearch/elasticsearch.initd
diff options
context:
space:
mode:
Diffstat (limited to 'community/elasticsearch/elasticsearch.initd')
-rw-r--r--community/elasticsearch/elasticsearch.initd86
1 files changed, 86 insertions, 0 deletions
diff --git a/community/elasticsearch/elasticsearch.initd b/community/elasticsearch/elasticsearch.initd
new file mode 100644
index 0000000000..91dd6809be
--- /dev/null
+++ b/community/elasticsearch/elasticsearch.initd
@@ -0,0 +1,86 @@
+#!/sbin/openrc-run
+
+description="A Distributed RESTful Search Engine."
+
+instance_name="${SVCNAME#elasticsearch.}"
+instance_name="${instance_name/elasticsearch/_default}"
+
+name="Elasticsearch"
+[ "$instance_name" != "_default" ] && name="$name ($instance_name)"
+
+: ${user:="elastico"}
+: ${group:="$(id -gn $user)"}
+: ${java_heap_size:="256"}
+
+: ${conf_dir:="/etc/elasticsearch/${instance_name#_default}"}
+: ${home_dir:="/var/lib/elasticsearch/$instance_name"}
+: ${default_data_dir:="$home_dir/data"}
+: ${default_plugins_dir:="$home_dir/plugins"}
+: ${default_logs_dir:="/var/log/elasticsearch/${instance_name#_default}"}
+: ${default_script_dir:="$conf_dir/scripts"}
+: ${default_work_dir:="/var/tmp/elasticsearch/$instance_name"}
+: ${create_logs_dir:="yes"}
+
+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
+}
+
+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
+ mkdir -p "$(dirname "$dir")"
+ done
+
+ checkpath -d -o $user:$group -m755 "$home_dir"
+ checkpath -d -o $user:$group -m700 "$default_data_dir"
+ checkpath -d -o $user:$group -m700 "$default_work_dir"
+ checkpath -d "$default_script_dir"
+
+ if yesno "$create_logs_dir"; then
+ mkdir -p "$default_logs_dir"
+ checkpath -d -o $user:$group -m755 "$default_logs_dir"
+ fi
+
+ if [ -n "$max_fd" ]; then
+ ulimit -n "$max_fd" && einfo "Max open filedescriptors: $max_fd"
+ return 0
+ fi
+}