59 lines
1.6 KiB
Bash
59 lines
1.6 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
readonly ENTRYPOINT_LIBS="/usr/lib/docker-entrypoint"
|
|
source "${ENTRYPOINT_LIBS}/debug.sh"
|
|
source "${ENTRYPOINT_LIBS}/logging.sh"
|
|
|
|
: "${JAVA:=/usr/bin/java}"
|
|
readonly ZBX_GATEWAY_CONFIG="${ZABBIX_CONF_DIR}/zabbix_java_gateway_logback.xml"
|
|
readonly ZABBIX_JAVA_DIR="/usr/sbin/zabbix_java"
|
|
readonly JAVA_CLASSPATH="lib/*:bin/*:ext_lib/*"
|
|
|
|
run_service() {
|
|
info "** Preparing Zabbix Java Gateway"
|
|
|
|
: "${ZBX_TIMEOUT:=3}"
|
|
|
|
[[ -f "$ZBX_GATEWAY_CONFIG" ]] || error "Missing configuration file: $ZBX_GATEWAY_CONFIG"
|
|
|
|
cd "$ZABBIX_JAVA_DIR"
|
|
|
|
local -a java_opts=(
|
|
-server
|
|
"-Dlogback.configurationFile=${ZBX_GATEWAY_CONFIG}"
|
|
)
|
|
|
|
if [[ -n "${ZBX_JAVA_OPTS:-}" ]]; then
|
|
read -r -a extra_java_opts <<< "${ZBX_JAVA_OPTS}"
|
|
java_opts+=("${extra_java_opts[@]}")
|
|
fi
|
|
|
|
local -a zabbix_opts=(
|
|
"-Dsun.rmi.transport.tcp.responseTimeout=${ZBX_TIMEOUT}000"
|
|
"-Dzabbix.listenPort=${ZBX_LISTEN_PORT:-10052}"
|
|
"-Dzabbix.timeout=${ZBX_TIMEOUT}"
|
|
)
|
|
|
|
[[ -n "${ZBX_LISTEN_IP:-}" ]] && zabbix_opts+=("-Dzabbix.listenIP=${ZBX_LISTEN_IP}")
|
|
[[ -n "${ZBX_START_POLLERS:-}" ]] && zabbix_opts+=("-Dzabbix.startPollers=${ZBX_START_POLLERS}")
|
|
[[ -n "${ZBX_PROPERTIES_FILE:-}" ]] && zabbix_opts+=("-Dzabbix.propertiesFile=${ZBX_PROPERTIES_FILE}")
|
|
|
|
local -a cmd=(
|
|
"$JAVA"
|
|
"${java_opts[@]}"
|
|
-classpath "$JAVA_CLASSPATH"
|
|
"${zabbix_opts[@]}"
|
|
com.zabbix.gateway.JavaGateway
|
|
)
|
|
|
|
exec "${cmd[@]}"
|
|
}
|
|
|
|
if [[ $# -eq 0 || "${1:-}" == -* ]]; then
|
|
run_service
|
|
fi
|
|
|
|
exec "$@"
|