Subversion Repositories configs

Rev

Rev 43 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4 - 1
#!/bin/bash
2
#
3
# zarafa-server Zarafa Collaboration Platform's Storage Server
4
#
5
# chkconfig: 345 85 25
6
# description: The Zarafa Server takes MAPI calls in SOAP over HTTP(S) or \
7
#              the unix socket. It authenticates users using one of three \
8
#              authentication backends (unix/pam, db, ldap). It stores the data \
9
#              in a MySQL instance, and optionally stores the attachments directly \
10
#              on the filesystem.
43 - 11
# processname: /usr/sbin/zarafa-server
4 - 12
# config: /etc/zarafa/server.cfg
59 - 13
# pidfile: /var/run/zarafad/server.pid
4 - 14
 
15
### BEGIN INIT INFO
16
# Provides: zarafa-server
17
# Required-Start: $local_fs $network $remote_fs $syslog
18
# Required-Stop: $local_fs $network $remote_fs $syslog
19
# Should-Start: mysqld
20
# Should-Stop: mysqld
21
# Short-Description: Zarafa Collaboration Platform's Storage Server
22
# Description: The Zarafa Server takes MAPI calls in SOAP over HTTP(S) or
23
#              the unix socket. It authenticates users using one of three
24
#              authentication backends (unix/pam, db, ldap). It stores the data
25
#              in a MySQL instance, and optionally stores the attachments directly
26
#              on the filesystem.
27
### END INIT INFO
28
 
29
SERVERCONFIG=/etc/zarafa/server.cfg
43 - 30
SERVERPROGRAM=/usr/sbin/zarafa-server
4 - 31
 
32
# Sanity checks.
33
[ -x $SERVERPROGRAM ] || exit 0
34
 
35
SERVERCONFIG_OPT=""
36
[ ! -z $SERVERCONFIG -a -f $SERVERCONFIG ] && SERVERCONFIG_OPT="-c $SERVERCONFIG"
37
 
38
[ -f /etc/sysconfig/zarafa ] && . /etc/sysconfig/zarafa
39
export ZARAFA_USERSCRIPT_LOCALE
40
 
41
# Source function library.
42
. /etc/rc.d/init.d/functions
43
if [ -z "$ZARAFA_LOCALE" ]; then
44
	ZARAFA_LOCALE="C"
45
fi
46
 
47
RETVAL=0
48
server=`basename $SERVERPROGRAM`
49
lockfile=/var/lock/subsys/$server
59 - 50
pidfile=/var/run/zarafad/server.pid
4 - 51
 
52
start() {
53
	# Start in background, always succeeds
54
	echo -n $"Starting $server: "
59 - 55
	install -dm0775 -o zarafa -g zarafa /var/run/zarafad
4 - 56
	export LC_ALL=$ZARAFA_LOCALE
57
	export LANG=$ZARAFA_LOCALE
58
	daemon $SERVERPROGRAM $SERVERCONFIG_OPT
59
	RETVAL=$?
60
	unset LC_ALL LANG
61
	echo
62
	[ $RETVAL -eq 0 ] && touch $lockfile
63
 
64
	return $RETVAL
65
}
66
 
67
stop() {
68
	if [ -f /tmp/zarafa-upgrade-lock ]; then
69
		echo
70
		echo "Zarafa Server database upgrade is taking place."
71
		echo "Do not stop this process bacause it may render your database unusable."
72
		echo
73
		exit 1
74
	fi
75
	# Cannot use killproc, because it has no timeout feature;
76
	# zarafa-server may take up to 60 seconds to shutdown.
59 - 77
	ZARAFAPID=`cat /var/run/zarafad/server.pid 2>/dev/null`
4 - 78
	if [ -z "$ZARAFAPID" -o ! -n "$ZARAFAPID" ]; then
79
		echo -n "Program ID of $server not found, trying to stop anyway: "
80
		killall $SERVERPROGRAM >/dev/null 2>&1
81
		RETVAL=$?
82
		echo
83
		if [ $RETVAL -eq 0 ]; then
84
			failure $"Stopping $server: "
85
		else
86
			success $"Stopping $server: "
87
		fi
88
		RETVAL=0
89
	else
90
		echo -n $"Stopping $server: "
91
		TIMEOUT=65
92
		/bin/kill $ZARAFAPID >/dev/null 2>&1
93
		if [ $? -eq 0 ]; then
94
			while [ $TIMEOUT -gt 0 ]; do
95
				/bin/kill -0 $ZARAFAPID >/dev/null 2>&1 || break
96
				sleep 1
97
				TIMEOUT=$[${TIMEOUT}-1]
98
			done
99
			if [ $TIMEOUT -eq 0 ]; then
100
				failure $"Timeout on stopping $server"
101
				RETVAL=1
102
			else
103
				success $"Stopping $server: "
104
				RETVAL=0
105
			fi
106
		else
107
			failure $"Stopping $server: "
108
		fi
109
		echo
110
	fi
111
	[ $RETVAL -eq 0 ] && rm -f $lockfile $pidfile
112
 
113
	return $RETVAL
114
}
115
 
116
restart() {
117
	stop
118
	start
119
}
120
 
121
reload() {
122
	echo -n $"Restarting $server: "
123
	killproc $SERVERPROGRAM -SIGHUP
124
	RETVAL=$?
125
	echo
126
 
127
	return $RETVAL
128
}
129
 
130
# See how we were called.
131
case "$1" in
132
    start)
133
		start
134
		;;
135
    stop)
136
		stop
137
		;;
138
    status)
139
		status $server
140
		RETVAL=$?
141
		;;
142
    restart|force-reload)
143
		restart
144
		;;
145
    condrestart|try-restart)
146
		if [ -f ${pidfile} ]; then
147
			stop
148
			start
149
		fi
150
		;;
151
    reload)
152
		reload
153
		;;
154
    *)
155
		echo $"Usage: $server {start|stop|status|reload|restart|condrestart|force-reload|try-restart}"
156
		RETVAL=1
157
		;;
158
esac
159
 
160
exit $RETVAL