default to using 2048 bit keys
[freeradius.git] / suse / rcradiusd
1 #! /bin/sh
2 # Copyright (c) 2001       SuSE GmbH Nuernberg, Germany.
3 #               2002, 2003 SuSE Linux AG, Nuernberg, Germany.
4 #
5 # Author: Wolfgang Rosenauer, 2000-2003
6 #
7 # /etc/init.d/radiusd
8 #
9 #   and symbolic its link
10 #
11 # /usr/bin/rcradiusd
12 #
13 ### BEGIN INIT INFO
14 # Provides:          radiusd
15 # Required-Start:    $network $syslog $remotefs
16 # Should-Start:      $time ypbind smtp
17 # Required-Stop:     $syslog $remote_fs
18 # Should-Stop:       ypbind smtp
19 # Default-Start:     3 5
20 # Default-Stop:      0 1 2 6
21 # Short-Description: RADIUS-Server
22 # Description:       Remote Authentication Dialin User Server
23 ### END INIT INFO
24
25 . /etc/init.d/functions
26
27 prog=radiusd
28
29 [ -e /etc/sysconfig/$prog ] && . /etc/sysconfig/$prog
30
31 exec=${exec:=/usr/sbin/$prog}
32 config_dir=${config_dir:=/etc/raddb}
33
34 test -x "$exec" || { echo "$exec not installed"; \
35         if [ "$1" = "stop" ]; then exit 0;
36         else exit 5; fi; }
37
38 configtest() {
39     echo -n "Checking $prog configuration "
40     out=`$exec -Cxl stdout -d $config_dir`; retval=$?
41     out=`echo "${out}" | tail -n 1 | sed 's/^\s*ERROR:\s*\(.*\)\s*$/\1/'`
42
43     [ $retval -ne 0 ] &&  echo "$out" 1>&2
44
45     return $retval
46 }
47
48 rc_reset
49 case "$1" in
50     start)
51         configtest || { rc_failed 150; rc_exit; }
52         echo -n "Starting RADIUS daemon "
53         startproc $exec >/dev/null
54         rc_status -v
55         ;;
56
57     stop)
58         echo -n "Shutting down RADIUS daemon "
59         killproc -TERM $exec
60         rc_status -v
61         ;;
62
63     try-restart|condrestart)
64         # If first returns OK call the second, if first or second command fails, set echo return value.
65         if test "$1" = "condrestart"; then
66             echo "${attn} Use try-restart ${done}(LSB)${attn} rather than condrestart ${warn}(RH)${norm}"
67         fi
68         $0 status
69         if [ $? = 0 ] ; then
70                 $0 restart
71         else
72                 rc_reset        # Not running is not a failure.
73         fi
74         rc_status
75         ;;
76
77     restart)
78         # Stop the service and regardless of whether it was running or not, start it again.
79         configtest || { rc_failed 150; rc_exit; }
80         $0 stop
81         $0 start
82         rc_status
83         ;;
84
85     force-reload)
86         # Signal the daemon to reload its config. Most daemons o this on signal 1 (SIGHUP).
87         # If it does not support it, restart.
88         configtest || { rc_failed 150; rc_exit; }
89         echo -n "Reload RADIUS daemon "
90         killproc -HUP $exec
91         rc_status -v
92         ;;
93
94     reload)
95         # Like force-reload, but if daemon does not support signalling, do nothing (!)
96         configtest || { rc_failed 150; rc_exit; }
97         echo -n "Reload RADIUS daemon "
98         killproc -HUP $exec
99         rc_status -v
100         ;;
101
102     status)
103         echo -n "Checking for service radiusd "
104         checkproc $exec
105         rc_status -v
106         ;;
107
108     configtest|testconfig)
109         configtest
110         rc_status -v
111         ;;
112
113     debug)
114         $0 status
115         if [ $? -eq 0 ]; then
116             echo -n "$prog already running; for live debugging see raddebug(8)"
117             exit 151
118         fi
119         $exec -X -d "$config_dir" || exit $?
120         exit 0
121         ;;
122
123     debug-threaded)
124         $0 status
125         if [ $? -eq 0 ]; then
126             echo -n "$prog already running; for live debugging see raddebug(8)"
127             exit 151
128         fi
129         $exec -f -xx -l stdout -d "$config_dir" || exit $?
130         exit 0
131         ;;
132
133     *)
134         echo "Usage: $0 {start|stop|status|try-restart|restart|force-reload|reload|configtest|debug|debug-threaded}"
135         exit 1
136         ;;
137 esac
138 rc_exit