目的
这是我为了让esp8266连接树莓派的homeassistant实现控制——通过Mqtt连接通信
Mosquitto是最常用的开源MQTT实现。
1、安装
安装Mosquitto MQTT服务,并且加入到系统的自启动中
1|sudo apt-get install mosquitto
安装命令行的发布和订阅程序(mosquitto_pub和mosquitto_sub,并不是必须的,可以用于测试与调试)
1|sudo apt-get install mosquitto-clients
安装完成后,可以通过以下命令管理mosquitto的MQTT服务的运行:
sudo systemctl status mosquitto.service
查看服务状态
sudo systemctl restart mosquitto.service
重启服务
sudo systemctl stop mosquitto.service
停止服务
sudo systemctl start mosquitto.service
启动服务
sudo systemctl enable mosquitto.service
将服务加入到自启动中
sudo systemctl disable mosquitto.service
将服务从自启动中去除
sudo journalctl -f -u mosquitto.service
查看服务实时输出的信息
2、基础配置
Mosquitto服务的配置文件为/etc/mosquitto/mosquitto.conf,但一般情况下,我们不会去修改这个文件,而是将需要配置的内容新建文件保存在/etc/mosquitto/conf.d/目录下。
在缺省情况下,Mosquitto服务是允许匿名用户发布和订阅信息的,我们需要将其改成用户通过用户名和密码,以保证安全。
创建文件/etc/mosquitto/passwd,并增加用户mqtt,设置密码
1|sudo mosquitto_passwd -c /etc/mosquitto/passwd mqtt
新建文件/etc/mosquitto/conf.d/allow.conf,内容为:
allow_anonymous false
password_file /etc/mosquitto/passwd
3、mosquitto杀死进程
1、查看mosquitto的进程
1|ps -aux | grep mosquitto
2、杀掉进程
1|kill -9 1824
自己看进程号修改