学而实习之 不亦乐乎

Linux 中 canal 开机自启动

2023-08-07 07:44:33

一、创建 canal 启动脚本

进入目录 /etc/init.d/ 并创建文件 canal,把下面内容粘贴进去,修改 java 路径和 canal 安装路径。

#!/bin/bash
#
#chkconfig: 345 63 37
#description: canal
#processname: canal
 
export JAVA_HOME=/usr/local/java/jdk1.8.0_161/
export PATH=$JAVA_HOME/bin:$PATH
 
CANAL_HOME=/usr/local/canal/adapter
 
case $1 in
  start)
    rm -rf $CANAL_HOME/bin/adapter.pid
    sh $CANAL_HOME/bin/startup.sh
    echo "canal is started"
    ;;
  stop)
    sh $CANAL_HOME/bin/stop.sh
    echo "canal is stop"
    ;;
  restart)
    sh $CANAL_HOME/bin/stop.sh
    sh $CANAL_HOME/bin/startup.sh
    echo "canal is started"
    ;;
  *)
    echo "start|stop|restart"
    ;;
esac
exit 0

二、给脚本添加权限

$ chmod 755 canal

三、添加服务到开机项

$ chkconfig --add canal

四、设置为开机启动

$ chkconfig canal on

五、测试

$ service canal start

发现一个有意思的事情,canal 如果不正常退出服务,比如虚拟机强制重启等,canal开机就无法正常启动,报错如下:

found adapter.pid , Please run stop.sh first ,then startup.sh canal is started;

说的就是找到了adapter.pid 请先运行stop.sh,实际上canal服务已经停止了.