我是使用源码安装,所以需要将启动文件添加为服务,从而使服务器启动时自动启动EMQ
将源码安装目录下的bin/emqttd 复制到 /etc/init.d 下面
cp /home/emqttd/bin/emqttd /etc/init.d/emqttd
使用 vim /etc/init.d/emqttd 打开emqttd文件
英文状态下 按 i 进入编写(insert)模式,在顶部添加下列代码 ,按Esc 退出编辑状态,英文状态按 :wq 退出编辑并保存
#!/bin/sh
# -*- tab-width:4;indent-tabs-mode:nil -*-
# ex: ts=4 sw=4 et
#
# 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..."
# 代码含义,进入到emq安装的根目录,同时执行 emq的启动命令
cd /home/emqttd && ./bin/emqttd start
}
stop() {
echo "stopping emqttd..."
# 代码含义,进入到emq安装的根目录,同时执行 emq的停止命令
cd /home/emqttd && ./bin/emqttd stop
}
restart() {
stop
start
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
*)
echo $"Usage: $0 {start|stop}"
RETVAL=2
esac
使用命令:shutdown -r now 重启服务器
ps -ef|grep emqttd 查看是否重启EMQ成功
额外知识点:
在linux命令中reboot是重新启动,shutdown -r now是立即停止然后重新启动,都说他们两个是一样的,其实是有一定的区别的。
1.shutdown命令可以安全地关闭或重启Linux系统,它在系统关闭之前给系统上的所有登录用户提示一条警告信息。该命令还允许用户指定一个时间参数,可以是一个精确的时间,也可以是从现在开始的一个时间段。
2.halt是最简单的关机命令,其实际上是调用shutdown -h命令。halt执行时,杀死应用进程,文件系统写操作完成后就会停止内核。