EMQ开机自启

       因为使用的是源码编译安装的EMQ,而不是使用的yum安装的EMQ,因此无法使用systemctl enable emqttd让EMQ开机自启,于是就决定写一个脚本,将其注册成一个服务,然后让其开机自启。

1、运行vi /etc/init.d/emqttd

在文件中加入以下内容:

#!/bin/sh
#
# emqttd       
#
# Startup script for emqttd.
#
# chkconfig: 2345 90 10
# description: emqttd is mqtt broker.
#
# source function library
. /etc/rc.d/init.d/functions
 
export HOME=/root

start() {
    echo "starting emqttd..."
    #此处根据实际安装目录修改下面的路径
    cd /home/cesec/EMQ/emqx-rel-2.3.11/_rel/emqttd && ./bin/emqttd start
}

stop() {
    echo "stopping emqttd..."
    #此处根据实际安装目录修改下面的路径
    cd /home/cesec/EMQ/emqx-rel-2.3.11/_rel/emqttd && ./bin/emqttd stop
}

restart() {
    stop
    start
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        restart
        ;;
    *)
        echo $"Usage: $0 {start|stop}"
        RETVAL=2
esac

: 复制这个脚本到Linux可能会丢失最上面的一部分,不知道为什么,通过xshell打开Linux,然后复制这些内容到文件中,会丢失一部分,自己复制过去以后检查清楚是否丢失一些内容。不然就算注册成一个服务也没法用。

2、保存退出,然后运行以下命令将脚本注册为服务

chmod +x /etc/init.d/emqttd

chkconfig --add emqttd

再运行chkconfig --list查看是否出现以下内容,出现则代表加入成功了。

3、现在EMQ就已经能做到开机自启了

可以运行shutdown -r now,重启系统,等待开启以后访问EMQ的Dashboard,看是否已经随着系统自启而自启了。

4、emqttd已经被注册成为了一个服务,以后启停EMQ都可以通过以下命令了,不用再到emqttd的bin下启动了,但是可能由于才注册成为一个服务,没重启系统之前没法使用以下的命令,会出现以下的情况,建议再运行完1和2的步骤以后最好运行以下3,然后下面的命令也能使用了。

#启动服务

systemctl start emqttd

#停止服务

systemctl stop emqttd

#重启服务

systemctl restart emqttd

参考:https://blog.csdn.net/u011267225/article/details/82387351

发布了69 篇原创文章 · 获赞 35 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/xiaoye319/article/details/90515321