diff options
Diffstat (limited to 'meta-networking/recipes-connectivity/freeradius/files/freeradius')
-rw-r--r-- | meta-networking/recipes-connectivity/freeradius/files/freeradius | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/meta-networking/recipes-connectivity/freeradius/files/freeradius b/meta-networking/recipes-connectivity/freeradius/files/freeradius new file mode 100644 index 000000000..fa412e2aa --- /dev/null +++ b/meta-networking/recipes-connectivity/freeradius/files/freeradius | |||
@@ -0,0 +1,110 @@ | |||
1 | #!/bin/sh | ||
2 | # Start/stop the FreeRADIUS daemon. | ||
3 | |||
4 | ### BEGIN INIT INFO | ||
5 | # Provides: freeradius | ||
6 | # Required-Start: $remote_fs $network $syslog | ||
7 | # Should-Start: $time mysql slapd postgresql samba krb5-kdc | ||
8 | # Required-Stop: $remote_fs $syslog | ||
9 | # Default-Start: 2 3 4 5 | ||
10 | # Default-Stop: 0 1 6 | ||
11 | # Short-Description: Radius Daemon | ||
12 | # Description: Extensible, configurable radius daemon | ||
13 | ### END INIT INFO | ||
14 | |||
15 | set -e | ||
16 | |||
17 | # Source function library. | ||
18 | . /etc/init.d/functions | ||
19 | |||
20 | if [ -f /lib/lsb/init-functions ]; then | ||
21 | . /lib/lsb/init-functions | ||
22 | fi | ||
23 | |||
24 | PROG="radiusd" | ||
25 | PROGRAM="/usr/sbin/radiusd" | ||
26 | PIDFILE="/var/run/radiusd/radiusd.pid" | ||
27 | DESCR="FreeRADIUS daemon" | ||
28 | |||
29 | if [ -r /etc/default/$PROG ]; then | ||
30 | . /etc/default/$PROG | ||
31 | fi | ||
32 | |||
33 | test -f $PROGRAM || exit 0 | ||
34 | |||
35 | check_certs() { | ||
36 | if [ ! -f /etc/raddb/certs/server.pem ]; then | ||
37 | echo -n "Creating certificates for freeradius..." | ||
38 | if sudo -u radiusd /etc/raddb/certs/bootstrap 1> /dev/null 2> /dev/null; then | ||
39 | echo "done" | ||
40 | else | ||
41 | echo "failed!" | ||
42 | fi | ||
43 | fi | ||
44 | |||
45 | } | ||
46 | |||
47 | # /var/run may be a tmpfs | ||
48 | if [ ! -d /var/run/radiusd ]; then | ||
49 | mkdir -p /var/run/radiusd | ||
50 | chown radiusd:radiusd /var/run/radiusd | ||
51 | fi | ||
52 | |||
53 | if [ ! -d /var/log/radius ]; then | ||
54 | mkdir -p /var/log/radius | ||
55 | touch /var/log/radius/radius.log | ||
56 | chown radiusd:radiusd /var/run/radius | ||
57 | fi | ||
58 | |||
59 | if [ ! -f ${PIDFILE} ]; then | ||
60 | touch ${PIDFILE} | ||
61 | chown radiusd:radiusd ${PIDFILE} | ||
62 | fi | ||
63 | |||
64 | export PATH="${PATH:+$PATH:}/usr/sbin:/sbin" | ||
65 | |||
66 | ret=0 | ||
67 | |||
68 | case "$1" in | ||
69 | start) | ||
70 | check_certs | ||
71 | echo -n "Starting $DESCR" "$PROG" | ||
72 | start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $PROGRAM -- $FREERADIUS_OPTIONS || ret=$? | ||
73 | [ "$ret" == 0 ] && echo " Success" || echo " Failed" | ||
74 | exit $ret | ||
75 | ;; | ||
76 | stop) | ||
77 | echo -n "Stopping $DESCR" "$PROG" | ||
78 | if [ -f "$PIDFILE" ] ; then | ||
79 | start-stop-daemon --stop --retry=TERM/30/KILL/5 --quiet --pidfile $PIDFILE || ret=$? | ||
80 | else | ||
81 | echo -n "$PIDFILE not found" | ||
82 | ret=1 | ||
83 | fi | ||
84 | [ "$ret" == 0 ] && echo " Success" || echo " Failed" | ||
85 | ;; | ||
86 | status) | ||
87 | status $PROGRAM; | ||
88 | exit $? | ||
89 | ;; | ||
90 | restart) | ||
91 | $0 stop | ||
92 | $0 start | ||
93 | ;; | ||
94 | reload|force-reload) | ||
95 | echo -n "Reloading $DESCR" "$PROG" | ||
96 | if [ -f "$PIDFILE" ] ; then | ||
97 | start-stop-daemon --stop --signal HUP --quiet --pidfile $PIDFILE || ret=$? | ||
98 | else | ||
99 | echo -n "$PIDFILE not found" | ||
100 | ret=1 | ||
101 | fi | ||
102 | [ "$ret" == 0 ] && echo " Success" || echo " Failed" | ||
103 | ;; | ||
104 | *) | ||
105 | echo "Usage: $0 start|stop|status|restart|force-reload|reload" | ||
106 | exit 1 | ||
107 | ;; | ||
108 | esac | ||
109 | |||
110 | exit 0 | ||