Ceph admin API init script

shan

Ceph admin API init script.

```bash

!/bin/sh

BEGIN INIT INFO

Provides: ceph-rest-api

Required-Start: $network

Required-Stop: $network

Default-Start: 2 3 4 5

Default-Stop: 0 1 6

Short-Description: Ceph Rest API server

Description: Frontend Ceph Rest API server

END INIT INFO

Author: Sébastien Han sebastien.han@enovance.com>

PATH should only include /usr/* if it runs after the mountnfs.sh script

PATH=/sbin:/usr/sbin:/bin:/usr/bin DESC="Ceph Rest API" NAME=ceph-rest-api DAEMON=/usr/bin/ceph-rest-api DAEMON_ARGS="--conf /etc/ceph/ceph.conf" PID_DIR=/var/run/ceph PIDFILE=/var/run/ceph/$NAME.pid SCRIPTNAME=/etc/init.d/$NAME CEPH_USER=root CEPH_GROUP=root LOCK_DIR=/var/lock/ceph

Exit if the package is not installed

[ -x $DAEMON ] || exit 0

. /lib/lsb/init-functions

mkdir -p ${PID_DIR} mkdir -p ${LOCK_DIR} chown ${CEPH_USER} ${LOCK_DIR}

do_start() {

    start-stop-daemon --start --background --quiet --chuid ${CEPH_USER}:${CEPH_GROUP} --make-pidfile --pidfile $PIDFILE --startas $DAEMON --test > /dev/null \
            || return 1
    start-stop-daemon --start --background --quiet --chuid ${CEPH_USER}:${CEPH_GROUP} --make-pidfile --pidfile $PIDFILE --startas $DAEMON -- \
            $DAEMON_ARGS \
            || return 2

}

do_stop() {

    start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE
    RETVAL="$?"
    rm -f $PIDFILE
    return "$RETVAL"

}

case "$1" in

start)
    log_daemon_msg "Starting $DESC" "$NAME"
    do_start
    case "$?" in
        0|1) log_end_msg 0 ;;
        2) log_end_msg 1 ;;
    esac
    ;;

stop)

    log_daemon_msg "Stopping $DESC" "$NAME"
    do_stop
    case "$?" in
            0|1) log_end_msg 0 ;;
            2) log_end_msg 1 ;;
    esac
    ;;

status)

   status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $?
   ;;

restart|force-reload)

    log_daemon_msg "Restarting $DESC" "$NAME"
    do_stop
    case "$?" in
        0|1)
            do_start
            case "$?" in
                0) log_end_msg 0 ;;
                1) log_end_msg 1 ;; # Old process is still running
                *) log_end_msg 1 ;; # Failed to start
            esac
            ;;
            *)
        # Failed to stop
            log_end_msg 1
            ;;
        esac
    ;;

*)

    echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
    exit 3
    ;;

esac ```