centos 环境下部分中间件的开机自启服务创建方法

1.所需中间件

需要用到的中间件有zookeeper、kafka、kafka-manager、redis等,因为kafka依赖zookeeper,所以在做服务开机启动优先级时kafka的优先级要低于zookeeper。


​ 先解释一下,后面的脚本中都会有 #chkconfig:2345 10 90 这样一串字符。

​ 其中2345是默认启动级别,级别有0-6共7个级别。

等级0表示:表示关机

等级1表示:单用户模式

等级2表示:无网络连接的多用户命令行模式

等级3表示:有网络连接的多用户命令行模式

等级4表示:不可用

等级5表示:带图形界面的多用户模式

等级6表示:重新启动

​ 10是启动优先级,90是停止优先级,优先级范围是0-100,数字越大,优先级越低。


2.zookeeper开机自启
  • 第一步,需要进入到/etc/rc.d/init.d目录下,新建一个zookeeper脚本

    [root@zookeeper ~]# cd /etc/rc.d/init.d/ 
    [root@zookeeper init.d]# pwd 
    /etc/rc.d/init.d 
    [root@zookeeper init.d]# touch zookeeper
    
  • 第二步,为zookeeper脚本添加执行权限

    [root@zookeeper init.d]# chmod +x zookeeper
    
  • 第三步,使用vi zookeeper 编辑该脚本,向文件中写入如下内容:

    [root@zookeeper init.d]# vi zookeeper
    
    #!/bin/bash
    #chkconfig:2345 10 90
    #description:service zookeeper
    export     JAVA_HOME=/home/gwi/tools/jdk/jdk1.8.0_171
    export     ZOO_LOG_DIR=/data/zookeeper/logs
    ZOOKEEPER_HOME=/home/gwi/tools/zookeeper/zookeeper-3.4.14
    case  "$1"   in
         start)  su  root  ${ZOOKEEPER_HOME}/bin/zkServer.sh  start;;
         start-foreground)  su  root ${ZOOKEEPER_HOME}/bin/zkServer.sh   start-foreground;;
         stop)  su  root  ${ZOOKEEPER_HOME}/bin/zkServer.sh  stop;;
         status)  su root  ${ZOOKEEPER_HOME}/bin/zkServer.sh    status;;
         restart)  su root   ${ZOOKEEPER_HOME}/bin/zkServer.sh   restart;;
         upgrade)su root  ${ZOOKEEPER_HOME}/bin/zkServer.sh  upgrade;;
         print-cmd)su root  ${ZOOKEEPER_HOME}/bin/zkServer.sh  print-cmd;;
         *)  echo "requirestart|start-foreground|stop|status|restart|print-cmd";;
    esac
    
    • 需要注意的是,这里一定要指定 “JAVA_HOME” 为java的安装目录,“ZOOKEEPER_HOME” 为zookeeper的安装目录。
    • ZOO_LOG_DIR 为zookeeper的日志目录,建议在脚本中添加该行命令,以便在zookeeper服务启动失败时查看原因。如果没有手动创建它的目录也会自动生成。
  • 使用 service zookeeper start/stop命令来尝试启动或关闭zookeeper,使用 service zookeeper status来查看zookeeper运行状态。

    • 查看状态是否已启动

      [root@zookeeper init.d]# service zookeeper status 
      JMX enabled by default 
      Using config: /home/gwi/tools/zookeeper/zookeeper-3.4.14/bin/../conf/zoo.cfg 
      Mode: standalone 
      [root@zookeeper init.d]#
      
    • 可以看到zookeeper已经启动,再来测试一下是否可以正常关闭和启动

      [root@zookeeper init.d]# service zookeeper stop 
      JMX enabled by default 
      Using config: /home/gwi/tools/zookeeper/zookeeper-3.4.10/bin/../conf/zoo.cfg 
      Stopping zookeeper ... STOPPED 
      [root@zookeeper init.d]# service zookeeper status 
      JMX enabled by default 
      Using config: /home/gwi/tools/zookeeper/zookeeper-3.4.10/bin/../conf/zoo.cfg 
      Error contacting service. It is probably not running. 
      [root@zookeeper init.d]# service zookeeper start 
      JMX enabled by default 
      Using config: /home/gwi/tools/zookeeper/zookeeper-3.4.14/bin/../conf/zoo.cfg 
      Starting zookeeper ... STARTED
      
    • 可以看到启动和关闭都没问题,说明该脚本文件能够正常使用。接下来,完成最后一步,把该zookeeper服务添加到开机自启服务中。

      [root@zookeeper init.d]# chkconfig --add zookeeper
      
    • 添加完之后,我们查看一下自启动服务列表中有没有zookeeper服务。命令如下。

      [root@zookeeper init.d]# chkconfig --list 
      auditd          0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭 
      blk-availability    0:关闭    1:启用    2:启用    3:启用    4:启用    5:启用    6:关闭 
      crond           0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭 
      ip6tables       0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭 
      zookeeper       0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭
      
    • 可以看到在开机自启服务列表中最后一行有zookeeper了,说明开机自启创建成功了。

    • 接下来,如果需要测试,可以用 reboot 命令重启服务器,然后查看 zookeeper 是否已经成功启动。命令如下:

      [root@home]# ps -ef | grep zookeeper
      
    • 如果看到如下图所示的样子,说明自启动成功了!

      在这里插入图片描述

3.kafka开机自启
  • 第一步,需要进入到/etc/rc.d/init.d目录下,新建一个kafka脚本

    [root@kafka ~]# cd /etc/rc.d/init.d/ 
    [root@kafka init.d]# pwd /etc/rc.d/init.d 
    [root@kafka init.d]# touch kafka
    
  • 第二步,为kafka脚本添加执行权限

    [root@kafka init.d]# chmod +x kafka
    
  • 第三步,使用vi kafka编辑该脚本,向文件中写入如下内容:

    [root@kafka init.d]# vi kafka
    
    #!/bin/bash
    
    #chkconfig:2345 30 80
    #description:kafka
    #processname:kafka
    export KAFKA_LOG=/data/kafka/logs
    export PATH=/home/gwi/tools/jdk/jdk1.8.0_171/bin:$PATH
    case $1 in
            start) /home/gwi/tools/kafka/kafka_2.11-2.1.1/bin/kafka-server-start.sh -daemon /home/gwi/tools/kafka/kafka_2.11-2.1.1/config/server.properties;;
            stop) /home/gwi/tools/kafka/kafka_2.11-2.1.1/bin/kafka-server-stop.sh;;
            status) jps;;
            restart) /home/gwi/tools/kafka/kafka_2.11-2.1.1/bin/kafka-server-stop.sh
            /home/gwi/tools/kafka/kafka_2.11-2.1.1/bin/kafka-server-start.sh -daemon /home/gwi/tools/kafka/kafka_2.11-2.1.1/config/server.properties;;
            *) echo "require start|stop|status|restart";;
    esac
    
  • 第四步,使用service kafka start/stop命令来尝试启动关闭kafka,使用service kafka status查看kafka状态。效果同zookeeper,同时,查看kafka停止命令是否执行还应该在service kafka stop执行后,再执行 ps -ef | grep kafka来查看kafka的状态。如果停止成功,那么只能看到一行有关kafka的信息。这里不再详细演示。

  • 第五步,启动和关闭都没问题,说明该脚本文件能够正常使用。接下来,完成最后一步,把该zookeeper服务添加到开机自启服务中。

    [root@kafka init.d]# chkconfig --add kafka
    
  • 添加完之后,我们查看一下自启动服务列表中有没有kafka服务。命令及详情如下。

    [root@kafka init.d]# chkconfig --list 
    auditd          0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭 
    blk-availability    0:关闭    1:启用    2:启用    3:启用    4:启用    5:启用    6:关闭 
    crond           0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭 
    ip6tables       0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭 
    kafka       0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭
    zookeeper       0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭
    
  • 可以看到在开机自启服务列表中有kafka了,说明开机自启也创建成功了。

  • 接下来,如果需要测试,可以用 reboot 命令重启服务器,然后查看 kafka是否已经成功启动。命令如下:

    [root@home]# ps -ef | grep kafka
    
  • 如果看到如下图所示的样子,说明kafka自启动也成功了!
    在这里插入图片描述

4.kafka-manage开机自启
  • 第一步,需要进入到/etc/rc.d/init.d目录下,新建一个kafka-manage脚本

    [root@kafka-manage ~]# cd /etc/rc.d/init.d/ 
    [root@kafka-manage init.d]# pwd /etc/rc.d/init.d 
    [root@kafka-manage init.d]# touch kafka-manage
    
  • 第二步,为kafka-manage脚本添加执行权限

    [root@kafka-manage init.d]# chmod +x kafka-manage
    
  • 第三步,使用vi kafka-manage编辑该脚本,向文件中写入如下内容:

    
    #!/bin/bash
    
    #chkconfig:2345 31 88
    #description:kafka-manage
    #processname:kafka-manage
    export KAFKA_MANAGER_LOG=/data/kafka-manager/logs
    export PATH=/home/gwi/tools/jdk/jdk1.8.0_171/bin:$PATH
    case $1 in
            start) nohup /home/gwi/tools/kafka-manager/kafka-manager-2.0.0.2/bin/kafka-manager -Dconfig.file=/home/gwi/tools/kafka-manager/kafka-manager-2.0.0.2/conf/application.conf -Dhttp.port=9001  >/dev/null 2>&1 &;;
            status) jps;;
            *) echo "require start|status";;
    esac
    
  • 第四步,还是用 service status/stop/start kafka-manage 命令查看kafka-manage脚本是否能够正常运行。方法与上者一致,不再赘述。

  • 第五步,记得添加到开机自启服务列表。命令如下:

    [root@kafka-manage init.d]# chkconfig --add kafka-manage
    
  • 第六步,用 chkconfig --list 来查看开机自启动服务列表中是否有 kafka-manage 服务。如果有,然后可以用reboot重启服务器,并用 ps -ef | grep kafka-manage 来测试kafka-manage是否为启动状态。此处的结果与上两个服务的结果几乎一致。如下图。
    在这里插入图片描述

5.redis开机自启

​ 需要注意到是,redis服务需要gcc环境的支持,所以gcc一定要在redis安装之前安装到位。

  • 第一步,需要进入到/etc/rc.d/init.d目录下,新建一个redis脚本

    [root@redis ~]# cd /etc/rc.d/init.d/ 
    [root@redis init.d]# pwd /etc/rc.d/init.d 
    [root@redis init.d]# touch redis
    
  • 第二步,为redis脚本添加执行权限

    [root@redis init.d]# chmod +x redis
    
  • 第三步,使用vi redis编辑该脚本,向文件中写入如下内容:

    #!/bin/bash
    # chkconfig:   2345 90 10
    # description:  Redis is a persistent key-value database
    PATH=/usr/local/bin:/sbin:/usr/bin:/bin  
    # 下面是redis的端口,必须要添加
    REDISPORT=6379  
    EXEC=/home/gwi/tools/redis/redis-4.0.14/src/redis-server   
    REDIS_CLI=/home/gwi/tools/redis/redis-4.0.14/src/redis-cli
    PIDFILE=/var/run/redis_6379.pid   
    CONF="/home/gwi/tools/redis/redis-4.0.14/redis.conf"
    # AUTH="1234"  这句没什么用可以不要  
    export REDIS_LOG=/data/redis/logs
     
    case "$1" in   
            start)   
                    if [ -f $PIDFILE ]   
                    then   
                            echo "$PIDFILE exists, process is already running or crashed."  
                    else  
                            echo "Starting Redis server..."  
                            $EXEC $CONF   
                    fi   
                    if [ "$?"="0" ]   
                    then   
                            echo "Redis is running..."  
                    fi   
                    ;;   
            stop)   
                    if [ ! -f $PIDFILE ]   
                    then   
                            echo "$PIDFILE exists, process is not running."  
                    else  
                            PID=$(cat $PIDFILE)   
                            echo "Stopping..."  
                           $REDIS_CLI -a gwi123 -p $REDISPORT  SHUTDOWN  2>/dev/null  
                            sleep 2  
                           while [ -x $PIDFILE ]   
                           do  
                                    echo "Waiting for Redis to shutdown..."  
                                   sleep 1  
                            done   
                            echo "Redis stopped"  
                    fi   
                    ;;   
            restart|force-reload)   
                    ${0} stop   
                    ${0} start   
                    ;;   
            *)   
                   echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2  
                    exit 1  
    esac
    
  • 第四步,还是用 service status/stop/start redis 命令查看 redis 脚本 是否能够正常运行。方法与上面一致,同样不再赘述。

  • 第五步,记得添加到开机自启服务列表。命令如下:

    [root@redis init.d]# chkconfig --add redis
    
  • 第六步,用 chkconfig --list 来查看开机自启动服务列表中是否有 redis 服务。如果有,然后可以用reboot重启服务器,并用 ps -ef | grep redis 来测试 redis 是否为启动状态。如果状态显示如下图(有两行),说明redis是已启动的状态。如果最后面的那一行,说明redis未能成功启动,应该到/data/redis/logs处查看redis的日志分析错误原因并做相应的处理。
    在这里插入图片描述

这样,centos 7下的中间件服务的开机自启就创建完成了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值