启动代理的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作为服务运行时,为什么我不能连接到它”;为此,我们需要日志(如果没有任何日志记录,那么这本身就很重要)。