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="$JAVA_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"
42fi
43if [ -n "$PROPERTIES_FILE" ]; then
44	ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dzabbix.propertiesFile=$PROPERTIES_FILE"
45fi
46
47tcp_timeout=${TIMEOUT:=3}000
48ZABBIX_OPTIONS="$ZABBIX_OPTIONS -Dsun.rmi.transport.tcp.responseTimeout=$tcp_timeout"
49
50COMMAND_LINE="$JAVA $JAVA_OPTIONS -classpath $CLASSPATH $ZABBIX_OPTIONS com.zabbix.gateway.JavaGateway"
51
52if [ -n "$PID_FILE" ]; then
53
54	# check that the PID file can be created
55
56	touch "$PID_FILE"
57	if [ $? -ne 0 ]; then
58		echo "Zabbix Java Gateway did not start: cannot create PID file"
59		exit 1
60	fi
61
62	# start the gateway and output pretty errors to the console
63
64	STDOUT=`$COMMAND_LINE & echo $! > "$PID_FILE"`
65	if [ -n "$STDOUT" ]; then
66		echo "$STDOUT"
67	fi
68
69	# verify that the gateway started successfully
70
71	PID=`cat "$PID_FILE"`
72	ps -p "$PID" > /dev/null 2>&1
73	if [ $? -ne 0 ]; then
74		echo "Zabbix Java Gateway did not start"
75		rm -f "$PID_FILE"
76		exit 1
77	fi
78
79else
80	exec $COMMAND_LINE
81fi
82