zoukankan      html  css  js  c++  java
  • 【RabbitMQ】 RabbitMQ配置开机启动

    环境

      系统:Linux(CentOS 7.2)

      Erlang环境:21.1(安装参考【Erlang】源码安装

      RabbitMQ:3.7.9(安装参考【RabbitMQ】 RabbitMQ安装

    配置开机启动

      1、增加自启动脚本:

        在/etc/init.d目录下新建一个rabbitmq-server文件,内容如下:  

      1 #!/bin/sh
      2 #
      3 # rabbitmq-server RabbitMQ broker
      4 #
      5 # chkconfig: - 80 05
      6 # description: Enable AMQP service provided by RabbitMQ
      7 #
      8  
      9 ### BEGIN INIT INFO
     10 # Provides:          rabbitmq-server
     11 # Required-Start:    $remote_fs $network
     12 # Required-Stop:     $remote_fs $network
     13 # Description:       RabbitMQ broker
     14 # Short-Description: Enable AMQP service provided by RabbitMQ broker
     15 ### END INIT INFO
     16  
     17 # Source function library.
     18 . /etc/init.d/functions
     19 export HOME=/root
     20 PATH=/sbin:/usr/sbin:/bin:/usr/bin
     21 NAME=rabbitmq-server
     22 #DAEMON=/usr/sbin/${NAME}
     23 #CONTROL=/usr/sbin/rabbitmqctl
     24 DAEMON=/server/rabbitmq/sbin/${NAME}
     25 CONTROL=/server/rabbitmq/sbin/rabbitmqctl
     26 DESC=rabbitmq-server
     27 USER=root
     28 ROTATE_SUFFIX=
     29 INIT_LOG_DIR=/var/log/rabbitmq
     30 PID_FILE=/var/run/rabbitmq/pid
     31  
     32 START_PROG="daemon"
     33 LOCK_FILE=/var/lock/subsys/$NAME
     34  
     35 test -x $DAEMON || exit 0
     36 test -x $CONTROL || exit 0
     37  
     38 RETVAL=0
     39 set -e
     40  
     41 [ -f /etc/default/${NAME} ] && . /etc/default/${NAME}
     42  
     43 ensure_pid_dir () {
     44     PID_DIR=`dirname ${PID_FILE}`
     45     if [ ! -d ${PID_DIR} ] ; then
     46         mkdir -p ${PID_DIR}
     47         chown -R ${USER}:${USER} ${PID_DIR}
     48         chmod 755 ${PID_DIR}
     49     fi
     50 }
     51  
     52 remove_pid () {
     53     rm -f ${PID_FILE}
     54     rmdir `dirname ${PID_FILE}` || :
     55 }
     56  
     57 start_rabbitmq () {
     58     status_rabbitmq quiet
     59     if [ $RETVAL = 0 ] ; then
     60         echo RabbitMQ is currently running
     61     else
     62         RETVAL=0
     63         ensure_pid_dir
     64         set +e
     65         RABBITMQ_PID_FILE=$PID_FILE $START_PROG $DAEMON 
     66             > "${INIT_LOG_DIR}/startup_log" 
     67             2> "${INIT_LOG_DIR}/startup_err" 
     68             0<&- &
     69         $CONTROL wait $PID_FILE >/dev/null 2>&1
     70         RETVAL=$?
     71         set -e
     72         case "$RETVAL" in
     73             0)
     74                 echo SUCCESS
     75                 if [ -n "$LOCK_FILE" ] ; then
     76                     touch $LOCK_FILE
     77                 fi
     78                 ;;
     79             *)
     80                 remove_pid
     81                 echo FAILED - check ${INIT_LOG_DIR}/startup_{log, _err}
     82                 RETVAL=1
     83                 ;;
     84         esac
     85     fi
     86 }
     87  
     88 stop_rabbitmq () {
     89     status_rabbitmq quiet
     90     if [ $RETVAL = 0 ] ; then
     91         set +e
     92         $CONTROL stop ${PID_FILE} > ${INIT_LOG_DIR}/shutdown_log 2> ${INIT_LOG_DIR}/shutdown_err
     93         RETVAL=$?
     94         set -e
     95         if [ $RETVAL = 0 ] ; then
     96             remove_pid
     97             if [ -n "$LOCK_FILE" ] ; then
     98                 rm -f $LOCK_FILE
     99             fi
    100         else
    101             echo FAILED - check ${INIT_LOG_DIR}/shutdown_log, _err
    102         fi
    103     else
    104         echo RabbitMQ is not running
    105         RETVAL=0
    106     fi
    107 }
    108  
    109 status_rabbitmq() {
    110     set +e
    111     if [ "$1" != "quiet" ] ; then
    112         $CONTROL status 2>&1
    113     else
    114         $CONTROL status > /dev/null 2>&1
    115     fi
    116     if [ $? != 0 ] ; then
    117         RETVAL=3
    118     fi
    119     set -e
    120 }
    121  
    122 rotate_logs_rabbitmq() {
    123     set +e
    124     $CONTROL rotate_logs ${ROTATE_SUFFIX}
    125     if [ $? != 0 ] ; then
    126         RETVAL=1
    127     fi
    128     set -e
    129 }
    130  
    131 restart_running_rabbitmq () {
    132     status_rabbitmq quiet
    133     if [ $RETVAL = 0 ] ; then
    134         restart_rabbitmq
    135     else
    136         echo RabbitMQ is not runnning
    137         RETVAL=0
    138     fi
    139 }
    140  
    141 restart_rabbitmq() {
    142     stop_rabbitmq
    143     start_rabbitmq
    144 }
    145  
    146 case "$1" in
    147     start)
    148         echo -n "Starting $DESC: "
    149         start_rabbitmq
    150         echo "$NAME."
    151         ;;
    152     stop)
    153         echo -n "Stopping $DESC: "
    154         stop_rabbitmq
    155         echo "$NAME."
    156         ;;
    157     status)
    158         status_rabbitmq
    159         ;;
    160     rotate-logs)
    161         echo -n "Rotating log files for $DESC: "
    162         rotate_logs_rabbitmq
    163         ;;
    164     force-reload|reload|restart)
    165         echo -n "Restarting $DESC: "
    166         restart_rabbitmq
    167         echo "$NAME."
    168         ;;
    169     try-restart)
    170         echo -n "Restarting $DESC: "
    171         restart_running_rabbitmq
    172         echo "$NAME."
    173         ;;
    174     *)
    175         echo "Usage: $0 {start|stop|status|rotate-logs|restart|condrestart|try-restart|reload|force-reload}" >&2
    176         RETVAL=1
    177         ;;
    178 esac
    179  
    180 exit $RETVAL  

      2、根据实际情况修改上面内容中

     1 # 增加了Erlang环境路径
     2 PATH=/sbin:/usr/sbin:/bin:/usr/bin:/data/soft/erlang_21.1/bin
     3 
     4 # 服务脚本
     5 DAEMON=/server/rabbitmq/sbin/${NAME}
     6 
     7 CONTROL=/server/rabbitmq/sbin/rabbitmqctl
     8 
     9 DESC=rabbitmq-server
    10 
    11 USER=root
    12 
    13 # 日志目录
    14 INIT_LOG_DIR=/data/soft/rabbitmq_server-3.7.9/var/log/rabbitmq     
    15 
    16 # pid文件,查找命令命令:find / -name rabbit*.pid                                       
    17 PID_FILE=/data/soft/rabbitmq_server-3.7.9/var/lib/rabbitmq/mnesia/rabbit@H__D.pid

      3、设置执行权限,命令:chmod a+x /etc/init.d/rabbitmq-server

      4、添加开机启动项

        a、添加命令:chkconfig --add /etc/init.d/rabbitmq-server

        b、查看启动项,命令:chkconfig --list

          rabbitmq-server启动项状态:rabbitmq-server           0:off   1:off   2:off   3:off   4:off   5:off   6:off

        c、需要设置rabbitmq-server启动命令:chkconfig rabbitmq-server on

          rabbitmq-server启动项状态:rabbitmq-server           0:off   1:off   2:on    3:on    4:on    5:on    6:off

        d、关闭命令为:chkconfig rabbitmq-server off

        e、删除命令为:chkconfig --del rabbitmq-server

      5、执行命令reboot,重启服务器即可验证rabbitmq-server开机启动

  • 相关阅读:
    java性能优化之HashMap,LinkedHashMap,TreeMap读取大量数据效率的比较
    jdk8 stream实现sql单表select a,b,sum(),avg(),max() from group by a,b order by a,b limit M offset N及其性能
    postgresql cstore_fdw性能测试
    Oracle JDBC prefetch: how to avoid running out of RAM
    mysql-创建用户报错ERROR 1396 (HY000): Operation CREATE USER failed for 'root'@'localhost'
    kafka外部访问设置
    mysql 排序长度限制之max_length_for_sort_data以及mysql两种排序算法
    mybatis三个执行器的差别
    Dubbo的集群容错与负载均衡策略及自定义(一致性哈希路由的缺点及自定义)
    mysql中包含长字段索引的优化
  • 原文地址:https://www.cnblogs.com/h--d/p/9998858.html
Copyright © 2011-2022 走看看