启动代理的MQTT代理设置问题
我用了那篇文章的方式,把经纪人安排在了覆盆子上,但奇怪的事情发生了 根据文章,我需要使用启动代理的MQTT代理设置问题,mqtt,mosquitto,Mqtt,Mosquitto,我用了那篇文章的方式,把经纪人安排在了覆盆子上,但奇怪的事情发生了 根据文章,我需要使用 sudo systemctl start mosquitto 启动连接 然后可以使用 sudo systemctl status mosquitto 是的,状态是活动的,但实际上不能使用 如果我使用命令检查 mosquitto 它显示错误:地址已在使用中 (请记住,我的esp32设备这次实际上无法连接) 如果我手动关闭代理 sudo systemctl stop mosquitto 然后检查状态,
sudo systemctl start mosquitto
启动连接
然后可以使用
sudo systemctl status mosquitto
是的,状态是活动的,但实际上不能使用
如果我使用命令检查
mosquitto
它显示错误:地址已在使用中
(请记住,我的esp32设备这次实际上无法连接)
如果我手动关闭代理
sudo systemctl stop mosquitto
然后检查状态,真正处于非活动状态
sudo systemctl status mosquitto
现在如果我使用命令
mosquitto
esp32设备现在可以成功连接
(我有另一个使用mqtt获取数据的python脚本)
我打赌问题出在sudo systemctl start mosquitto&mosquitto上
权限问题,但不确定如何解决
(或者其他问题)
----20201103更新----
sudo systemctl启动MOSQUITO后的日志文件,然后启动MOSQUITO
config loaded from /etc/mosquitto/mosquitto.conf.
Opening ipv4 listen socket on port 1883.
Error : Address already in use
目前,我可以通过mqtt将esp32设备与raspberry连接起来
正在使用命令
mosquitto
但不使用
sudo systemctl start mosquitto
----20201104更新----
我会在这里回答大家,也许我没有解释清楚:
情景一
运行
sudo systemctl启动mosquitto
然后mosquitto
这是因为sudo systemctl start mosquito
无法使连接工作
我用mosquitto
检查发生了什么
情况二
运行
sudo systemctl stop mosquitt
然后mosquitt
我首先使用sudo systemctl stop mosquitto
停止代理,然后使用mosquitto
和连接工作
但它不应该是这样的正确方法是只使用sudo systemctl start mosquito 情况1是完全错误的
情景2虽然它可以工作,但不是正确的方法,这一切都按预期工作
sudo systemctl start mosquitto
将启动代理实例作为后台服务,在命令行上运行mosquitto
将尝试在代理上启动第二个实例(在前台)。这将失败,因为后台实例已绑定到端口1883(默认MQTT端口),并将报告您看到的错误
如果要测试后台实例是否正常工作,请从第2点开始,回答如何测试mosquitto代理。请检查
/var/log/mosquitto/mosquitto.log
是否有任何错误(在运行sudo systemctl start mosquitto
之后)。日志的路径是在mosquitto.conf
中设置的(我假设您是从教程中复制的)。运行mosquitto
时出现的错误是我希望看到它是否已经在运行的错误。@Brits它只是在执行mosquitto时显示了相同的情况,我会根据charc limits运行sudo系统ctl启动mosquitto
然后mosquitto
听起来像是您启动了两次mosquitto?systemctl
命令应该在后台启动MOSQUITO,因此再次运行它将导致您看到的错误。如果要测试mosquitto是否正在运行,请使用ps
和mosquitto\u sub
/mosquitto\u pub
请参阅。请在日志中显示运行sudo systemctl start mosquitto
时发生的情况(以及其他情况),根据前面的评论(以及hardillb的回答),如果mosquitto已经运行,您将看到预期的情况(以及运行sudo systemctl start mosquitto
和mosquitto
时的预期情况)。您真正的问题似乎是“当Mosquitto作为服务运行时,为什么我不能连接到它”;为此,我们需要日志(如果没有任何日志记录,那么这本身就很重要)。