RabbitMQ开机自启动脚本

来源:互联网 发布:中国房价与收入比知乎 编辑:程序博客网 时间:2024/06/06 09:33
    #!/bin/sh    #    # rabbitmq-server RabbitMQ broker    #    # chkconfig: - 80 05    # description: Enable AMQP service provided by RabbitMQ    #    ### BEGIN INIT INFO    # Provides:          rabbitmq-server    # Required-Start:    $remote_fs $network    # Required-Stop:     $remote_fs $network    # Description:       RabbitMQ broker    # Short-Description: Enable AMQP service provided by RabbitMQ broker    ### END INIT INFO    # Source function library.    . /etc/init.d/functions    export HOME=/root    PATH=/sbin:/usr/sbin:/bin:/usr/bin    NAME=rabbitmq-server    #DAEMON=/usr/sbin/${NAME}    #CONTROL=/usr/sbin/rabbitmqctl    DAEMON=/home/software/rabbitmq/sbin/${NAME}    CONTROL=/home/software/rabbitmq/sbin/rabbitmqctl    DESC=rabbitmq-server    USER=admin    ROTATE_SUFFIX=    INIT_LOG_DIR=/var/log/rabbitmq    PID_FILE=/var/run/rabbitmq/pid    START_PROG="daemon"    LOCK_FILE=/var/lock/subsys/$NAME    test -x $DAEMON || exit 0    test -x $CONTROL || exit 0    RETVAL=0    set -e    [ -f /etc/default/${NAME} ] && . /etc/default/${NAME}    ensure_pid_dir () {        PID_DIR=`dirname ${PID_FILE}`        if [ ! -d ${PID_DIR} ] ; then            mkdir -p ${PID_DIR}            chown -R ${USER}:${USER} ${PID_DIR}            chmod 755 ${PID_DIR}        fi    }    remove_pid () {        rm -f ${PID_FILE}        rmdir `dirname ${PID_FILE}` || :    }    start_rabbitmq () {        status_rabbitmq quiet        if [ $RETVAL = 0 ] ; then            echo RabbitMQ is currently running        else            RETVAL=0            ensure_pid_dir            set +e            RABBITMQ_PID_FILE=$PID_FILE $START_PROG $DAEMON \                > "${INIT_LOG_DIR}/startup_log" \                2> "${INIT_LOG_DIR}/startup_err" \                0<&- &            $CONTROL wait $PID_FILE >/dev/null 2>&1            RETVAL=$?            set -e            case "$RETVAL" in                0)                    echo SUCCESS                    if [ -n "$LOCK_FILE" ] ; then                        touch $LOCK_FILE                    fi                    ;;                *)                    remove_pid                    echo FAILED - check ${INIT_LOG_DIR}/startup_\{log, _err\}                    RETVAL=1                    ;;            esac        fi    }    stop_rabbitmq () {        status_rabbitmq quiet        if [ $RETVAL = 0 ] ; then            set +e            $CONTROL stop ${PID_FILE} > ${INIT_LOG_DIR}/shutdown_log 2> ${INIT_LOG_DIR}/shutdown_err            RETVAL=$?            set -e            if [ $RETVAL = 0 ] ; then                remove_pid                if [ -n "$LOCK_FILE" ] ; then                    rm -f $LOCK_FILE                fi            else                echo FAILED - check ${INIT_LOG_DIR}/shutdown_log, _err            fi        else            echo RabbitMQ is not running            RETVAL=0        fi    }    status_rabbitmq() {        set +e        if [ "$1" != "quiet" ] ; then            $CONTROL status 2>&1        else            $CONTROL status > /dev/null 2>&1        fi        if [ $? != 0 ] ; then            RETVAL=3        fi        set -e    }    rotate_logs_rabbitmq() {        set +e        $CONTROL rotate_logs ${ROTATE_SUFFIX}        if [ $? != 0 ] ; then            RETVAL=1        fi        set -e    }    restart_running_rabbitmq () {        status_rabbitmq quiet        if [ $RETVAL = 0 ] ; then            restart_rabbitmq        else            echo RabbitMQ is not runnning            RETVAL=0        fi    }    restart_rabbitmq() {        stop_rabbitmq        start_rabbitmq    }    case "$1" in        start)            echo -n "Starting $DESC: "            start_rabbitmq            echo "$NAME."            ;;        stop)            echo -n "Stopping $DESC: "            stop_rabbitmq            echo "$NAME."            ;;        status)            status_rabbitmq            ;;        rotate-logs)            echo -n "Rotating log files for $DESC: "            rotate_logs_rabbitmq            ;;        force-reload|reload|restart)            echo -n "Restarting $DESC: "            restart_rabbitmq            echo "$NAME."            ;;        try-restart)            echo -n "Restarting $DESC: "            restart_running_rabbitmq            echo "$NAME."            ;;        *)            echo "Usage: $0 {start|stop|status|                        rotate-logs|restart|condrestart|                        try-restart|reload|force-reload}" >&2            RETVAL=1            ;;    esac    exit $RETVAL

/etc/init.d 目录下新建一个 rabbitmq-server 文件,
复制上面的内容 添加到 rabbitmq-server 文件里。

适当修改 红色部分

DAEMON=/home/software/rabbitmq/sbin/${NAME}CONTROL=/home/software/rabbitmq/sbin/rabbitmqctlDESC=rabbitmq-serverUSER=admin保存退出
[root@kong-Linux /]# /etc/init.d/rabbitmq-server startbash: /etc/init.d/rabbitmq-server: 权限不够

rabbitmq-server 的权限 为可执行

文章来源

0 0