1#!/bin/sh
2
3cd `dirname $0`
4. ./settings.sh
5
6if [ -n "$PID_FILE" -a -f "$PID_FILE" ]; then
7	PID=`cat "$PID_FILE"`
8	if ps -p "$PID" > /dev/null 2>&1; then
9		echo "Zabbix Java Gateway is already running"
10		exit 1
11	fi
12	rm -f "$PID_FILE"
13fi
14
15JAVA=${JAVA:-java}
16
17JAVA_OPTIONS="-server"
18if [ -z "$PID_FILE" ]; then
19	JAVA_OPTIONS="$JAVA_OPTIONS -Dlogback.configurationFile=logback-console.xml"
20fi
21
22CLASSPATH="lib"
23for jar in lib/*.jar bin/*.jar; do
24	CLASSPATH="$CLASSPATH:$jar"
25done
26
27ZABBIX_OPTIONS=""
28if [ -n "$PID_FILE" ]; then
29	ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.pidFile=$PID_FILE"
30fi
31if [ -n "$LISTEN_IP" ]; then
32	ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.listenIP=$LISTEN_IP"
33fi
34if [ -n "$LISTEN_PORT" ]; then
35	ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.listenPort=$LISTEN_PORT"
36fi
37if [ -n "$START_POLLERS" ]; then
38	ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.startPollers=$START_POLLERS"
39fi
40if [ -n "$TIMEOUT" ]; then
41	ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.timeout=$TIMEOUT -Dsun.rmi.transport.tcp.responseTimeout=${TIMEOUT}000"
42fi
43
44# uncomment to enable remote monitoring of the standard JMX objects on the Zabbix Java Gateway itself
45# JAVA_OPTIONS="$JAVA_OPTIONS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345
46# 	-Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
47
48COMMAND_LINE="$JAVA $JAVA_OPTIONS -classpath $CLASSPATH $ZABBIX_OPTIONS com.zabbix.gateway.JavaGateway"
49
50if [ -n "$PID_FILE" ]; then
51
52	# check that the PID file can be created
53
54	touch "$PID_FILE"
55	if [ $? -ne 0 ]; then
56		echo "Zabbix Java Gateway did not start: cannot create PID file"
57		exit 1
58	fi
59
60	# start the gateway and output pretty errors to the console
61
62	STDOUT=`$COMMAND_LINE & echo $! > "$PID_FILE"`
63	if [ -n "$STDOUT" ]; then
64		echo "$STDOUT"
65	fi
66
67	# verify that the gateway started successfully
68
69	PID=`cat "$PID_FILE"`
70	ps -p "$PID" > /dev/null 2>&1
71	if [ $? -ne 0 ]; then
72		echo "Zabbix Java Gateway did not start"
73		rm -f "$PID_FILE"
74		exit 1
75	fi
76
77else
78	exec $COMMAND_LINE
79fi
80