b99e24ca3c43ae157702675015618efbeabe86b7
[citadel.git] / webcit / debian / webcit.init
1 #! /bin/sh
2 ### BEGIN INIT INFO
3 # Provides:          webcit
4 # Required-Start:    $local_fs $remote_fs
5 # Required-Stop:     $local_fs $remote_fs
6 # Default-Start:     2 3 4 5
7 # Default-Stop:      0 1 6
8 # Short-Description: Example initscript
9 # Description:       This file should be used to construct scripts to be
10 #                    placed in /etc/init.d.
11 ### END INIT INFO
12
13 # uncomment this to create coredumps as described in
14 # http://www.citadel.org/doku.php/faq:mastering_your_os:gdb#how.do.i.make.my.system.produce.core-files
15 # ulimit -c unlimited
16
17 # Author: Wilfried Goesgens <citadel@outgesourced.org>
18 RUNDIR=/var/run/webcit
19 PATH=/sbin:/usr/sbin:/bin:/usr/bin
20 DESC="Citadel Groupware Webserver "
21 NAME=webcit
22 DAEMON=/usr/sbin/$NAME
23 DAEMON_ARGS=""
24 PIDFILE=$RUNDIR/$NAME.pid
25 SCRIPTNAME=/etc/init.d/webcit
26 SENDCOMMAND=/usr/sbin/sendcommand
27 DEFAULT=/etc/default/webcit
28 LOGDIR=/var/log/webcit/
29 DROP_TO_UID=`id -u nobody`
30
31 # Exit if the package is not installed
32 [ -x "$DAEMON" ] || exit 0
33
34 # Read configuration variable file if it is present
35 [ -r /etc/default/$NAME ] && . /etc/default/$NAME
36
37 MODERN=
38
39 # Load the VERBOSE setting and other rcS variables
40 if test -f /lib/init/vars.sh ; then
41     . /lib/init/vars.sh
42     MODERN=1
43 fi
44
45 # Define LSB log_* functions.
46 # Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
47 if test -f /lib/lsb/init-functions; then
48     . /lib/lsb/init-functions
49     MODERN=1
50 fi
51
52 if test -f $DEFAULT; then
53   . $DEFAULT
54 fi
55
56 unset LANG
57 unset LANGUAGE
58 unset LC_ALL
59 unset LOCALE
60
61 if test -z "$TZ"; then
62         if test -e /etc/timezone; then
63                 TZ=`cat /etc/timezone`
64                 export TZ
65         fi
66 fi
67 #
68 # Function that starts the daemon/service
69 #
70 do_start()
71 {
72     #1: -p flag
73     #1: port
74     #2: ssl
75     #4: -f flag for apache
76
77         # for ubuntu: check our volatile dirs.
78         if test ! -d $RUNDIR; then
79             mkdir -p $RUNDIR
80         fi
81
82         if test ! -d $LOGDIR; then
83             mkdir -p $LOGDIR
84         fi
85
86         # are we disabled?
87         if test "$1" -lt "0"; then
88             return 0
89         fi
90
91         # Return
92         #   0 if daemon has been started
93         #   1 if daemon was already running
94         #   2 if daemon could not be started
95         if $DAEMON -u $DROP_TO_UID -D$PIDFILE.$1 \
96             -p$@ -t$LOGDIR/access.${1}.log $4; then
97             return 0
98         else
99             return 2
100         fi
101 }
102
103 #
104 # Function that stops the daemon/service
105 #
106 do_stop()
107 {
108         for i in $PIDFILE.*; do if test -f $i; then
109             kill `cat $i`
110             rm -f $i
111         fi; done
112 }
113
114 do_reload() {
115         do_stop
116         do_start $WEBCIT_HTTP_PORT $WEBCIT_CITADEL_IP $WEBCIT_CITADEL_PORT "" "$LISTEN"  "$WEBCIT_APACHEFLAG"
117         do_start $WEBCIT_HTTPS_PORT $WEBCIT_CITADEL_IP $WEBCIT_CITADEL_PORT -s "$LISTEN"  "$WEBCIT_APACHEFLAG"
118         return 0
119 }
120
121 case "$1" in
122   start)
123         if test -n "$MODERN"; then
124         [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
125         else
126             echo "Starting $DESC" "$NAME"
127         fi
128
129         if test -n "$WEBCIT_LISTEN_IP"; then
130             LISTEN="-i$WEBCIT_LISTEN_IP"
131         fi
132
133         do_start $WEBCIT_HTTP_PORT $WEBCIT_CITADEL_IP $WEBCIT_CITADEL_PORT "" "$LISTEN"  "$WEBCIT_APACHEFLAG"
134         do_start $WEBCIT_HTTPS_PORT $WEBCIT_CITADEL_IP $WEBCIT_CITADEL_PORT -s "$LISTEN"  "$WEBCIT_APACHEFLAG"
135
136         if test -n "$MODERN"; then
137             case "$?" in
138                 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
139                 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
140             esac
141         fi
142         ;;
143   stop)
144         if test -n "$MODERN"; then
145             [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
146         else
147             echo "Stopping $DESC" "$NAME"
148         fi
149         do_stop
150         if test -n "$MODERN"; then
151             case "$?" in
152                 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
153                 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
154             esac
155         fi
156         ;;
157   restart|force-reload)
158         if test -n "$MODERN"; then
159         log_daemon_msg "Restarting $DESC" "$NAME"
160         else
161             echo "Restarting $DESC" "$NAME"
162         fi
163
164         do_stop
165
166         if test -n "$MODERN"; then
167             case "$?" in
168                 0|1)
169                     do_start $WEBCIT_HTTP_PORT $WEBCIT_CITADEL_IP $WEBCIT_CITADEL_PORT "" "$WEBCIT_APACHEFLAG"
170                     do_start $WEBCIT_HTTPS_PORT $WEBCIT_CITADEL_IP $WEBCIT_CITADEL_PORT -s  "$WEBCIT_APACHEFLAG"
171                     case "$?" in
172                         0) log_end_msg 0 ;;
173                         1) log_end_msg 1 ;; # Old process is still running
174                         *) log_end_msg 1 ;; # Failed to start
175                     esac
176                     ;;
177                 *)
178                 # Failed to stop
179                     log_end_msg 1
180                     ;;
181             esac
182         else
183             do_start $WEBCIT_HTTP_PORT $WEBCIT_CITADEL_IP $WEBCIT_CITADEL_PORT "" "$WEBCIT_APACHEFLAG"
184             do_start $WEBCIT_HTTPS_PORT $WEBCIT_CITADEL_IP $WEBCIT_CITADEL_PORT -s  "$WEBCIT_APACHEFLAG"
185         fi
186         ;;
187   *)
188         echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
189         exit 3
190         ;;
191 esac
192
193 :