* migrated debian install to system V init
[citadel.git] / citadel / debian / citadel.init
1 #! /bin/sh
2 ### BEGIN INIT INFO
3 # Provides:          skeleton
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 # Author: Foo Bar <foobar@baz.org>
14 #
15 # Please remove the "Author" lines above and replace them
16 # with your own name if you copy and modify this script.
17
18 # Do NOT "set -e"
19
20 # PATH should only include /usr/* if it runs after the mountnfs.sh script
21 RUNDIR=/var/run/citadel
22 PATH=/sbin:/usr/sbin:/bin:/usr/bin
23 DESC="Citadel Groupware "
24 NAME=citserver
25 DAEMON=/usr/sbin/$NAME
26 DAEMON_ARGS=" -d -x3 -lmail"
27 PIDFILE=$RUNDIR/$NAME.pid
28 SCRIPTNAME=/etc/init.d/citadel
29 SENDCOMMAND=/usr/sbin/sendcommand
30
31
32 # Exit if the package is not installed
33 [ -x "$DAEMON" ] || exit 0
34
35 # Read configuration variable file if it is present
36 [ -r /etc/default/$NAME ] && . /etc/default/$NAME
37
38 # Load the VERBOSE setting and other rcS variables
39 . /lib/init/vars.sh
40
41 # Define LSB log_* functions.
42 # Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
43 . /lib/lsb/init-functions
44
45 #
46 # Function that starts the daemon/service
47 #
48 do_start()
49 {
50         # for ubuntu: check our volatile dirs.
51         if test ! -d $RUNDIR; then
52             mkdir -p $RUNDIR
53         fi
54         # Return
55         #   0 if daemon has been started
56         #   1 if daemon was already running
57         #   2 if daemon could not be started
58         start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \
59                 $DAEMON_ARGS \
60                 || return 2
61         # Add code here, if necessary, that waits for the process to be ready
62         # to handle requests from services started subsequently which depend
63         # on this one.  As a last resort, sleep for some time.
64 }
65
66 #
67 # Function that stops the daemon/service
68 #
69 do_stop()
70 {
71         # Return
72         #   0 if daemon has been stopped
73         #   1 if daemon was already stopped
74         #   2 if daemon could not be stopped
75         #   other if a failure occurred
76         %SENDCOMMAND "DOWN"
77
78         #while test -d /proc/`cat $PIDFILE`; do
79         #    /usr/bin/printf  '.'
80         #    /bin/sleep 1
81         #done
82         sleep 5
83  
84         #start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
85         #RETVAL="$?"
86         #[ "$RETVAL" = 2 ] && return 2
87         # Wait for children to finish too if this is a daemon that forks
88         # and if the daemon is only ever run from this initscript.
89         # If the above conditions are not satisfied then add some other code
90         # that waits for the process to drop all resources that could be
91         # needed by services started subsequently.  A last resort is to
92         # sleep for some time.
93         #start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
94         #[ "$?" = 2 ] && return 2
95         # Many daemons don't delete their pidfiles when they exit.
96         # rm -f $PIDFILE
97         return 0
98 }
99
100 #
101 # Function that sends a SIGHUP to the daemon/service
102 #
103 do_reload() {
104         #
105         # If the daemon can reload its configuration without
106         # restarting (for example, when it is sent a SIGHUP),
107         # then implement that here.
108         #
109 #       start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
110         do_stop
111         do_start
112         return 0
113 }
114
115 case "$1" in
116   start)
117         [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
118         do_start
119         case "$?" in
120                 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
121                 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
122         esac
123         ;;
124   stop)
125         [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
126         do_stop
127         case "$?" in
128                 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
129                 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
130         esac
131         ;;
132   #reload|force-reload)
133         #
134         # If do_reload() is not implemented then leave this commented out
135         # and leave 'force-reload' as an alias for 'restart'.
136         #
137         #log_daemon_msg "Reloading $DESC" "$NAME"
138         #do_reload
139         #log_end_msg $?
140         #;;
141   restart|force-reload)
142         #
143         # If the "reload" option is implemented then remove the
144         # 'force-reload' alias
145         #
146         log_daemon_msg "Restarting $DESC" "$NAME"
147         do_stop
148         case "$?" in
149           0|1)
150                 do_start
151                 case "$?" in
152                         0) log_end_msg 0 ;;
153                         1) log_end_msg 1 ;; # Old process is still running
154                         *) log_end_msg 1 ;; # Failed to start
155                 esac
156                 ;;
157           *)
158                 # Failed to stop
159                 log_end_msg 1
160                 ;;
161         esac
162         ;;
163   *)
164         #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
165         echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
166         exit 3
167         ;;
168 esac
169
170 :