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

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’

解决方法:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值