RabbitMQ开机自启动脚本

一、脚本创建

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

chmod 777 文件名 加执行权限的话是chmod +x 文件名:

chmod 777 /etc/init.d/rabbitmq

chmod +x /etc/init.d/rabbitmq

chmod u+x /etc/init.d/rabbitmq

创建自启服务:

chkconfig --add rabbitmq

设置开机自启:

chkconfig rabbitmq on

关闭开机自启:

chkconfig rabbitmq off

查看开机自启项目:

chkconfig --list

启动测试:

service rabbitmq start


二、脚本内容(注意加粗字体)

#!/bin/sh

# chkconfig: 2345 10 90

# 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:/usr/local/erlang/bin

NAME=rabbitmq-server

#DAEMON=/usr/sbin/${NAME}

#CONTROL=/usr/sbin/rabbitmqctl

DAEMON=/usr/local/rabbitmq/sbin/${NAME}

CONTROL=/usr/local/rabbitmq/sbin/rabbitmqctl

DESC=rabbitmq-server

USER=root

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容