Ceph admin API 初始化脚本

shan

Ceph admin API 初始化脚本。

```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 服务器

Description: 前端 Ceph Rest API 服务器

END INIT INFO

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

PATH 应该只包含 /usr/*,如果它在 mountnfs.sh 脚本之后运行

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

如果软件包未安装,则退出

[ -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 ```