上一篇文章《如何在树莓派4B上安装EMQ X Broker》中所提及的EMQX编译安装成功后,还想要让它开启自动启动,这样才能作为一个MQTT服务器来使用。
那怎么办呢,怪我Linux基础太差,找了好多教程,试了不下十遍,终于成功了。首次成功是在Ubuntu下,因为Ubuntu也是树莓派官网推荐的OS之一,所以先从这个基于Debian的流行操作系统开始的。网上很多都是针对Ubuntu 18及老版本的,找了好久因为新版本是用SystemD来管理服务了。
设置操作视频
已上传至微信公众号,请直接点击文章链接观看:https://mp.weixin.qq.com/s/8naZNoS87yZN7r26Qfo7bw
准备工作
因为树莓派默认没有安装VIM,需要自行安装sudo apt install vim,本部分的VIM功能,记住i是进入编辑模式,ESC退出编辑模式,:是进入命令号模式,进入命令行后w是写入,q是退出。
开始设置
第一步在rc-local.service增加服务
sudo vim /lib/systemd/system/rc-local.service
VIM打开后,在最下面增加如下代码
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
第二步是在rc.local增加emqx启动命令
sudo vim /etc/rc.local
打开后,在exit 0前面增加以下代码
echo "EMQX auto starting" > /usr/local/emqx.log
cd /home/pi/emqx-rel/_build/emqx/rel/emqx/bin && sudo ./emqx start
第三步给rc.local增加可执行权限
sudo chmod +x /etc/rc.local
第四步给EMQX目录增加权限
sudo chmod -R 777 /home/pi/emqx-rel/_build
最后一步启动服务
sudo systemctl enable rc-local.service
设置完毕重启后,就应该能看到服务的日志
服务的状态也可以看到如下
服务相关命令
启动服务
sudo systemctl start rc-local.service
禁用服务
sudo systemctl disable rc-local.service
服务状态
sudo systemctl status rc-local.service
重新加载服务
sudo systemctl daemon-reload