blob: 79238d4f40a0e9557d16e0e9c1d023433c164303 [file] [log] [blame]
Patrick Williamsb48b7b42016-08-17 15:04:38 -05001#! /bin/sh
2### BEGIN INIT INFO
3# Provides: krb5-admin-server
4# Required-Start: $local_fs $remote_fs $network $syslog
5# Required-Stop: $local_fs $remote_fs $network $syslog
6# Should-Start: krb5-kdc
7# Should-Stop: krb5-kdc
8# Default-Start: 2 3 4 5
9# Default-Stop: 0 1 6
10# Short-Description: MIT Kerberos KDC administrative daemon
11# Description: Starts, stops, or restarts the MIT Kerberos KDC
12# administrative daemon (kadmind). This daemon answers
13# requests from kadmin clients and allows administrators
14# to create, delete, and modify principals in the KDC
15# database.
16### END INIT INFO
17
18# Author: Sam Hartman <hartmans@mit.edu>
19# Author: Russ Allbery <rra@debian.org>
20#
21# Based on the /etc/init.d/skeleton template as found in initscripts version
22# 2.86.ds1-15.
23
24# June, 2012: Adopted for yocto <amy.fong@windriver.com>
25
26PATH=/usr/sbin:/usr/bin:/sbin:/bin
27DESC="Kerberos administrative servers"
28NAME=kadmind
29DAEMON=/usr/sbin/$NAME
30DAEMON_ARGS=""
31SCRIPTNAME=/etc/init.d/krb5-admin-server
32DEFAULT=/etc/default/krb5-admin-server
33
34# Exit if the package is not installed.
35[ -x "$DAEMON" ] || exit 0
36
37# Read configuration if it is present.
38[ -r "$DEFAULT" ] && . "$DEFAULT"
39
40# Get the setting of VERBOSE and other rcS variables.
41[ -f /etc/default/rcS ] && . /etc/default/rcS
42
43. /etc/init.d/functions
44
45ADMIN_SERVER_LOG=/var/log/kadmind.log
46[ -f $ADMIN_SERVER_LOG ] && (test ! -x /sbin/restorecon \
47 || /sbin/restorecon -F $ADMIN_SERVER_LOG)
48
49# Return
50# 0 if daemon has been started
51# 1 if daemon was already running
52# 2 if daemon could not be started
53do_start()
54{
55 start-stop-daemon --start --quiet --startas $DAEMON --name $NAME --test \
56 > /dev/null || return 1
57 start-stop-daemon --start --quiet --startas $DAEMON --name $NAME \
58 -- $DAEMON_ARGS || return 2
59}
60
61# Return
62# 0 if daemon has been stopped
63# 1 if daemon was already stopped
64# 2 if daemon could not be stopped
65# other if a failure occurred
66do_stop()
67{
68 start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --name $NAME
69 RETVAL="$?"
70 [ "$RETVAL" = 2 ] && return 2
71 return "$RETVAL"
72}
73
74
75case "$1" in
76 start)
77 if [ "$RUN_KADMIND" = false ] ; then
78 if [ "$VERBOSE" != no ] ; then
79 echo "Not starting $DESC per configuration"
80 fi
81 exit 0
82 fi
83 [ "$VERBOSE" != no ] && echo "Starting $DESC" "$NAME"
84 do_start
85 case "$?" in
86 0|1) [ "$VERBOSE" != no ] && echo 0 ;;
87 2) [ "$VERBOSE" != no ] && echo 1 ;;
88 esac
89 ;;
90
91 stop)
92 [ "$VERBOSE" != no ] && echo "Stopping $DESC" "$NAME"
93 do_stop
94 case "$?" in
95 0|1) [ "$VERBOSE" != no ] && echo 0 ;;
96 2) [ "$VERBOSE" != no ] && echo 1 ;;
97 esac
98 ;;
99
100 restart|force-reload)
101 if [ "$RUN_KADMIND" = false ] ; then
102 if [ "$VERBOSE" != no ] ; then
103 echo "Not restarting $DESC per configuration"
104 fi
105 exit 0
106 fi
107 echo "Restarting $DESC" "$NAME"
108 do_stop
109 case "$?" in
110 0|1)
111 do_start
112 case "$?" in
113 0) [ "$VERBOSE" != no ] && echo 0 ;;
114 *) [ "$VERBOSE" != no ] && echo 1 ;;
115 esac
116 ;;
117 *)
118 echo 1
119 ;;
120 esac
121 ;;
122
123 status)
124 pidofproc "$DAEMON" >/dev/null
125 status=$?
126 if [ $status -eq 0 ]; then
127 echo "$NAME is running."
128 else
129 echo "$NAME is not running."
130 fi
131 exit $status
132 ;;
133
134 *)
135 echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload|status}" >&2
136 exit 3
137 ;;
138esac
139
140: