-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathinit.j2
151 lines (136 loc) · 3.85 KB
/
init.j2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
#!/bin/sh
#
# /etc/init.d/selenium_{{sel_role}} -- startup script for selenium test server
#
### BEGIN INIT INFO
# Provides: selenium_{{sel_role}}
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Should-Start: $named
# Should-Stop: $named
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start Selenium {{sel_role}}.
# Description: Start the Selenium {{sel_role}} server.
### END INIT INFO
PATH=/bin:/usr/bin:/sbin:/usr/sbin
NAME=selenium_{{sel_role}}
DESC="Selenium test server {{sel_role}}"
DEFAULT="/etc/default/${NAME}"
SE_PID="/var/run/${NAME}.pid"
JVM_TMP="/var/tmp/${NAME}_app"
if [ `id -u` -ne 0 ]; then
# no user change?
echo "You need root privileges to run this script"
exit 1
fi
# Make sure it is started with system locale
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG
fi
. /lib/lsb/init-functions
if [ -r /etc/default/rcS ]; then
. /etc/default/rcS
fi
# overwrite settings with default file
if [ -f "${DEFAULT}" ]; then
. "${DEFAULT}"
fi
# overridable defaults
SE_USER=${SE_USER:-"nobody"}
SE_GROUP=${SE_GROUP:-"nogroup"}
JAR_ARGS=${JAR_ARGS:-""}
JAVA_OPTS=${JAVA_OPTS:-""}
SYSTEM_JAVA=$(update-alternatives --query java|grep Value|cut -f 2 -d":")
if [ -z "$JAVA_HOME" -a ! -z "${SYSTEM_JAVA}" ]; then
JAVA_HOME=$(dirname "${SYSTEM_JAVA}")
JAVA_HOME=${JAVA_HOME%/bin}
fi
export JAVA_HOME JAVA_TMP JAVA_OPTS
case $1 in
start)
$0 status
if [ $? -eq 0 ]; then
log_daemon_msg "No need to start another!"
exit 0
fi
log_daemon_msg "Starting $DESC" "$NAME"
# Some validation
if [ -z "$JAVA_HOME" ]; then
log_failure_msg "no JAVA found - please set JAVA_HOME"
exit 1
fi
umask 022
# Clean JVM_TMP directory
if [ -d "$JVM_TMP" ]; then
rm -rf "${JVM_TMP}" || {
log_failure_msg "could not clean JVM temporary directory"
exit 1
}
fi
install -o ${SE_USER} -g ${SE_GROUP} -d ${JVM_TMP}
if [ ! -z "${ROLE}" ] && [ "${ROLE}" != "standalone" ]; then
JAR_ARGS="-role ${ROLE}"
fi
if [ ! -z "${HUB}" ]; then
JAR_ARGS="${JAR_ARGS} -hub ${HUB}"
fi
if [ ! -z "${PORT}" ]; then
JAR_ARGS="${JAR_ARGS} -port ${PORT}"
fi
start-stop-daemon --start \
--background \
--pidfile "${SE_PID}" \
--make-pidfile \
--user "${SE_USER}" \
--group "${SE_GROUP}" \
--exec ${JAVA_HOME}/bin/java -- ${JAVA_OPTS} -jar /usr/local/lib/{{jar_file}} ${JAR_ARGS} ${EXTRA_ARGS} 2>&1 \
| logger -t "${NAME}"
;;
stop)
log_daemon_msg "Stopping ${DESC}" "${NAME}"
$0 status
if [ $? -eq 0 ]; then
start-stop-daemon --stop \
--pidfile "${SE_PID}" \
--retry=TERM/30/KILL/5
rc=$?
if [ $? -eq 0 ]; then
if [ -f "${SE_PID}" ]; then
rm "${SE_PID}"
fi
log_daemon_msg "${NAME} stopped"
fi
return ${rc}
fi
;;
status)
start-stop-daemon --status --pidfile "${SE_PID}" --name ${NAME}
rc=$?
case $rc in
0) msg="$NAME is running with pid: $( cat ${SE_PID})." ;;
1) msg="$NAME is not running but pid file exists." ;;
3) msg="$NAME is not running.";;
4) msg="Unable to determine status of ${NAME}";;
esac
log_daemon_msg $msg
return $rc
;;
version)
echo "${NAME} {{server_version}}"
;;
restart)
$0 stop || true
$0 start
;;
force-reload|reload)
#TODO: actually test selenium reopens files
start-stop-daemon --stop SIGUSR1 --pidfile "${SE_PID}"
;;
*)
log_success_msg "Usage: $0 {start|stop|force-reload|restart|status|version}"
exit 1
;;
esac
exit 0