10

我已经在我的 ubuntu 机器上安装了 mosquitto 服务器和客户端软件包。当我运行命令“mosquitto”来运行 mosquitto 服务器时,我收到一个错误“错误:地址已在使用中”。为什么我会收到此错误?我该如何解决这个问题?

4

5 回答 5

17

我遇到了同样的问题,并通过杀死正在运行 mosquitto 的进程来解决问题。首先,定位 mosquitto 进程 id:

ps -ef | grep mosquitto

这应该向您揭示任何与蚊子相关的过程。例如说进程 id 是12345,那么你可以用这个杀死它:

sudo kill 12345

之后Error:address already in use消息消失了,mosquitto 能够再次正常运行。

于 2016-10-27T22:26:38.627 回答
10

ubuntu 上的安装会自动为您启动代理。尝试连接以检查它:

mosquitto_sub -t '$SYS/#' -v

mosquitto-clients如果您尚未安装该软件包,则需要安装该软件包。

于 2015-05-13T19:45:07.097 回答
0

我发现如果你有:

socket_domain ipv4

前 :

listener 1883 yourhostname

在您的配置中,它会导致“地址已在使用中”,您只需颠倒顺序...

于 2022-02-09T11:08:34.087 回答
0

软件包安装程序将 mosquitto 设置为systemd服务并自动启动它为您运行。它还将 mosquitto 配置为在重新启动时启动,因此您无需手动启动它。

但有时在控制台窗口中运行它可能会有所帮助,例如测试新的配置文件,或观察输出以查看客户端建立和断开连接等。为此,您需要停止后台服务,您可以使用systemctl来执行此操作:

$ systemctl stop mosquitto.service

当您完成测试并想要启动后台服务备份时:

$ systemctl start mosquitto.service

要检查它,请使用以下status命令:

$ systemctl status mosquitto.service 
● mosquitto.service - Mosquitto MQTT Broker
     Loaded: loaded (/lib/systemd/system/mosquitto.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2021-05-10 10:17:41 EDT; 1 day 6h ago
       Docs: man:mosquitto.conf(5)
             man:mosquitto(8)
...
   Main PID: 1110 (mosquitto)
      Tasks: 1 (limit: 76805)
     Memory: 5.3M
     CGroup: /system.slice/mosquitto.service
             └─1110 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf

May 10 10:17:41 carter systemd[1]: Starting Mosquitto MQTT Broker...
May 10 10:17:41 carter systemd[1]: Started Mosquitto MQTT Broker.

这表明它正在运行、启动时、进程(主)PID 以及它正在使用的配置文件等等。

于 2021-05-11T20:50:00.217 回答
0

只需等待 1 分钟,即可再次执行熄火命令。这是我遵循的并使其正常工作

第一步:journalctl -u mosquitto

第2步:服务蚊子停止//而不是systemctl stop蚊子

只是为了检查它是否成功关闭使用这个可选 - 步骤 3:systemctl status mosquitto.service

最后

第四步:服务蚊子开始

于 2021-05-11T17:57:35.850 回答