1#! /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:
141