44 | 创建zk、kafka和cmak自启动

导读:本篇文章讲解 44 | 创建zk、kafka和cmak自启动,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

1 环境

uname -a

查看后结果

root@test01-prd:~# uname  -a
Linux test01-prd 4.15.0-166-generic #174-Ubuntu SMP Wed Dec 8 19:07:44 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

2 zk自启动

路径:/etc/systemd/system

2.1 脚本

[Unit]
Description=zookeeper.service
After=network.target

[Service]
Type=forking
User=root
Group=root
Environment=ZOO_LOG_DIR=/usr/local/zookeeper-3.5.9/bin
Environment=JAVA_HOME=/usr/local/jdk-1.8.0
ExecStart=/usr/local/zookeeper-3.5.9/bin/zkServer.sh start 
ExecStop=/usr/local/zookeeper-3.5.9/bin/zkServer.sh stop
ExecReload=/usr/local/zookeeper-3.5.9/bin/zkServer.sh restart

[Install]
WantedBy=multi-user.target

2.2 添加到自启动

  • 刷新配置
systemctl daemon-reload
  • zookeeper服务加入开机自启
systemctl enable zookeeper.service
  • systemctl启动zookeeper
systemctl start zookeeper.service
  • systemctl关闭 zookeeper
systemctl stop  zookeeper.service
  • systemctl重启 zookeeper
systemctl  restart  zookeeper.service

3 kafka自启动

3.1 第一种方式

3.1.1 脚本

[Unit]
Description=kafka.service
After=network.target  zookeeper.service

[Service]
Type=forking
User=root
Group=root
Environment=JAVA_HOME=/usr/local/jdk-1.8.0
ExecStart=/usr/local/kafka_2.12-2.4.1/bin/kafka-server-start.sh -daemon  /usr/local/kafka_2.12-2.4.1/config/server.properties
ExecStop=/usr/local/kafka_2.12-2.4.1/bin/kafka-server-stop.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

注意:是先启动zk后,才可以启动kafka,所以服务kafka添加到zk之后。

3.1.2 添加到自启动

  • 刷新配置
systemctl daemon-reload
  • kafka服务加入开机自启
systemctl enable kafka.service
  • systemctl启动kafka
systemctl start kafka.service
  • systemctl关闭kafka
systemctl stop  kafka.service
  • systemctl重启 kafka
systemctl  restart  kafka.service

3.2 第二种方式

路径:/etc/init.d/
vim  kafka

3.2.1 脚本

DAEMON_PATH=/opt/kafka/
PATH=$PATH:$DAEMON_PATH/bin

# See how we were called.
case "$1" in
  start)
        # Start daemon.
        echo "Starting Zookeeper";
        nohup $DAEMON_PATH/bin/zookeeper-server-start.sh -daemon /$DAEMON_PATH/config/zookeeper.properties 2> /dev/null && \
        echo "Starting Kafka";
        nohup $DAEMON_PATH/bin/kafka-server-start.sh -daemon /$DAEMON_PATH/config/server.properties 2> /dev/null
        ;;
  stop)
        # Stop daemons.
        echo "Shutting down Zookeeper";
        pid=`ps ax | grep -i 'org.apache.zookeeper.server' | grep -v grep | awk '{print $1}'`
        if [ -n "$pid" ]
          then
          kill -9 $pid
        else
          echo "Zookeeper was not Running"
        fi
        echo "Shutting down Kafka";
        pid=`ps ax | grep -i 'kafka.Kafka' | grep -v grep | awk '{print $1}'`
        if [ -n "$pid" ]
          then
          kill -9 $pid
        else
          echo "Kafka was not Running"
        fi
        ;;
  restart)
        $0 stop
        sleep 2
        $0 start
        ;;
  status)
        pid=`ps ax | grep -i 'org.apache.zookeeper.server' | grep -v grep | awk '{print $1}'`
        if [ -n "$pid" ]
          then
          echo "Zookeeper is Running as PID: $pid"
        else
          echo "Zookeeper is not Running"
        fi
        pid=`ps ax | grep -i 'kafka.Kafka' | grep -v grep | awk '{print $1}'`
        if [ -n "$pid" ]
          then
          echo "Kafka is Running as PID: $pid"
        else
          echo "Kafka is not Running"
        fi
        ;;
  *)
        echo "Usage: $0 {start|stop|restart|status}"
        exit 1
esac

exit 0

3.2.2 设置自启动

  • 创建kafka服务
chmod 755 /etc/init.d/kafka
update-rc.d kafka defaults
  • 启动和停止kafka服务:
sudo service kafka start
sudo service kafka status
sudo service kafka stop
  • 删除Kafka服务,请运行
update-rc.d -f kafka remove

4 cmak自启动

4.1 安装cmake

sudo apt install cmak
cmak -version

后台启动

nohup bin/cmak &

4.2 自启动

4.2.1 创建start.sh

#!/bin/bash
if [ -f RUNNING_PID ];then echo -e "Delete RUNNING_PID !\n";rm RUNNING_PID;fi
/usr/local/cmak-3.0.0.5/bin/cmak   2>&1 >/dev/null &

4.2.2 创建stop.sh

#!/bin/bash
jps|grep -w 'ProdServerStart'|awk '{print $1}'|xargs kill -9
if [ -f RUNNING_PID ];then echo -e "Delete RUNNING_PID!停止cmak 服务\n";rm RUNNING_PID;fi

4.2.3 自启动脚本

[Unit]
Description=cmak.service
Requires=network.target   

[Service]
Type=forking
User=root
Group=root
Environment=JAVA_HOME=/usr/local/jdk-1.8.0
WorkingDirectory=/usr/local/cmak-3.0.0.5/
ExecStart=/usr/local/cmak-3.0.0.5/start.sh
ExecStop=/usr/local/cmak-3.0.0.5/stop.sh
Restart=on-failure

[Install]
WantedBy=multi-user.target

4.2.4 启动指令

systemctl daemon-reload
systemctl enable  cmak.service
systemctl start  cmak.service
systemctl stop  cmak.service
systemctl status  cmak.service

在这里插入图片描述

4.2.5 排查错误信息

journalctl -xeu  cmak.service

在这里插入图片描述

5 常见问题

问题1:/etc/systemd/system/cmak.service:3: Unknown lvalue ‘serviceAfter’ in section ‘Unit’

解决方法:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/79895.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!