build-sys: make docbook path find easier to read
[openafs.git] / src / packaging / Debian / openafs-fileserver.init
1 #! /bin/sh
2 ### BEGIN INIT INFO
3 # Provides:             openafs-fileserver
4 # Required-Start:       $remote_fs $network $time $named
5 # Required-Stop:        $remote_fs $network
6 # Default-Start:        2 3 4 5
7 # Default-Stop:         0 1 6
8 # Short-Description:    OpenAFS file and database server manager
9 # Description:          Starts, stops, or restarts the OpenAFS bosserver,
10 #                       which is the process that starts and manages the
11 #                       OpenAFS file server or database servers depending on
12 #                       its configuration.
13 ### END INIT INFO
14
15 # Author: Sam Hartman <hartmans@mit.edu>
16 # Author: Russ Allbery <rra@debian.org>
17 #
18 # Based on the /etc/init.d/skeleton template as found in initscripts version
19 # 2.86.ds1-15.
20
21 PATH=/sbin:/bin:/usr/sbin:/usr/bin
22 DESC="OpenAFS BOS server"
23 NAME=bosserver
24 DAEMON=/usr/sbin/bosserver
25 DAEMON_ARGS=""
26 SCRIPTNAME=/etc/init.d/openafs-fileserver
27
28 # Exit if the package is not installed and we were not given the status option.
29 if [ ! -x "$DAEMON" ] && [ "status" != "$1" ] ; then
30     exit 0
31 fi
32
33 # Read configuration if it is present.
34 [ -r /etc/default/openafs-fileserver ] && . /etc/default/openafs-fileserver
35
36 # Get the setting of VERBOSE and other rcS variables.
37 [ -f /etc/default/rcS ] && . /etc/default/rcS
38
39 # Define LSB log functions (requires lsb-base >= 3.0-6).
40 . /lib/lsb/init-functions
41
42 # Make sure we don't leave file descriptors open.
43 exec 3>/dev/null
44 exec </dev/null
45
46 # Return
47 #   0 if daemon has been started
48 #   1 if daemon was already running
49 #   2 if daemon could not be started
50 do_start()
51 {
52     start-stop-daemon --start --quiet --startas $DAEMON --name $NAME --test \
53         > /dev/null || return 1
54     start-stop-daemon --start --quiet --startas $DAEMON --name $NAME \
55         -- $DAEMON_ARGS || return 2
56 }
57
58 # Return
59 #   0 if daemon has been stopped
60 #   1 if daemon was already stopped
61 #   2 if daemon could not be stopped
62 #   other if a failure occurred
63 do_stop()
64 {
65     start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --name $NAME
66 }
67
68 case "$1" in 
69   start)
70     [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
71     do_start
72     case "$?" in
73       0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
74       2)   [ "$VERBOSE" != no ] && log_end_msg 1 ;;
75     esac
76     ;;
77
78   stop)
79     [ "$VERBOSE" != no ] && log_action_msg "Stopping OpenAFS services"
80     bos shutdown localhost -wait -localauth
81     [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
82     do_stop
83     case "$?" in
84       0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
85       2)   [ "$VERBOSE" != no ] && log_end_msg 1 ;;
86     esac
87     ;;
88
89   restart|force-reload)
90     [ "$VERBOSE" != no ] && log_daemon_msg "Restarting $DESC" "$NAME"
91     start-stop-daemon --start --quiet --startas $DAEMON --name $NAME --test \
92         > /dev/null
93     case "$?" in
94       0)
95         do_start
96         case "$?" in
97           0) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
98           *) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
99         esac
100         ;;
101       1)
102         bos restart localhost -all -bosserver -localauth
103         case "$?" in
104           0) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
105           *) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
106         esac
107         ;;
108       *)
109         log_end_msg 1
110         ;;
111     esac
112     ;;
113
114   status)
115     start-stop-daemon --start --quiet --startas $DAEMON --name $NAME --test \
116         > /dev/null
117     case "$?" in
118       0)
119         echo "$NAME is not running"
120         exit 3
121         ;;
122       1)
123         echo "$NAME is running"
124         exit 0
125         ;;
126       *)
127         log_warning_msg "Cannot determine if $NAME is running"
128         exit 4
129         ;;
130     esac
131     ;;
132
133   *)
134     echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|status}" >&2
135     exit 3
136     ;;
137 esac
138
139 exit 0