diff options
Diffstat (limited to 'packages/base/src/files/install/elk/init.d')
-rw-r--r-- | packages/base/src/files/install/elk/init.d/elkd | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/packages/base/src/files/install/elk/init.d/elkd b/packages/base/src/files/install/elk/init.d/elkd new file mode 100644 index 000000000..539b4be3e --- /dev/null +++ b/packages/base/src/files/install/elk/init.d/elkd @@ -0,0 +1,76 @@ +#!/bin/bash + +ELK_BASE=${POLICY_HOME}/elk/ +ELK_RUNNING="^$JAVA_HOME/bin/java .* -cp.* org.elasticsearch.bootstrap.Elasticsearch$" +COMPONENT=elk + +JMX_JAVA_OPTS="${JMX_JAVA_OPTS} -Dcom.sun.management.jmxremote" +JMX_JAVA_OPTS="${JMX_JAVA_OPTS} -Dcom.sun.management.jmxremote.port=${{ELK_JMX_PORT}}" +JMX_JAVA_OPTS="${JMX_JAVA_OPTS} -Dcom.sun.management.jmxremote.ssl=false" +JMX_JAVA_OPTS="${JMX_JAVA_OPTS} -Dcom.sun.management.jmxremote.authenticate=false" + +RETVAL=0 + +function update_monitor() { + COMPONENT=$1 + STATUS=$2 + if [[ -f ${POLICY_HOME}/etc/monitor/monitor.cfg ]]; then + /bin/sed -i.bak \ + -e "s/^${COMPONENT}=.*/${COMPONENT}=${STATUS}/g" \ + ${POLICY_HOME}/etc/monitor/monitor.cfg + fi +} + +function stop() { + pkill -u ${POLICY_USER} -f "${ELK_RUNNING}" -TERM + RETVAL=$? + if [[ ${RETVAL} != 0 ]]; then + sleep 2 + pkill -u ${POLICY_USER} -f "${ELK_RUNNING}" -KILL + RETVAL=$? + fi + update_monitor ${COMPONENT} off + sleep 1 +} + +function start() { + export JAVA_OPTS="${JAVA_OPTS} ${JMX_JAVA_OPTS}" + $POLICY_HOME/elk/bin/elasticsearch -d + RETVAL=$? + if [[ ${RETVAL} != 0 ]]; then + update_monitor ${COMPONENT} off + else + update_monitor ${COMPONENT} on + fi +} + +# main + +case "$1" in + status) + pid=$(pgrep -f -u ${POLICY_USER} "${ELK_RUNNING}" 2> /dev/null) + RETVAL=$? + if [ $RETVAL -eq 0 ]; then + echo "running with pid ${pid}" + else + echo "stopped" + fi + ;; + restart) + stop + sleep 2 + start + ;; + start) + start + ;; + stop) + stop + ;; + *) + echo "error: invalid option $@" + RETVAL=1 + ;; +esac + +exit ${RETVAL}
\ No newline at end of file |