Error: Address in use 1883 mosquito Docker
Error: Address in use 1883 mosquito Docker
在 ubuntu 16.04 中启动蚊子 docker 时出现错误。
@biswanath:~$ docker logs mosquitto-test
1609346169: mosquitto version 1.6.12 starting
1609346169: Config loaded from /mosquitto/config/mosquitto.conf.
1609346169: Opening ipv4 listen socket on port 1883.
1609346169: Error: Address in use
虽然我已经卸载了所有以前安装的mousquitto。但是 Ports(1883) 仍在被蚊子使用。需要帮助释放此端口 1883。
@biswanath:~$ sudo lsof -i TCP:1883
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mosquitto 2185 root 4u IPv4 27174 0t0 TCP *:1883 (LISTEN)
mosquitto 2185 root 5u IPv6 27175 0t0 TCP *:1883 (LISTEN)
@biswanath:~$ sudo systemctl stop mosquitto
Failed to stop mosquitto.service: Unit mosquitto.service not loaded.
当试图用 kill -9 PID 杀死时,它会再次创建。
@biswanath:~$ ps ax | grep mosq
13719 ? Ss 0:00 /bin/sh /snap/mosquitto/387/launcher.sh
13759 ? S 0:00 /snap/mosquitto/387/usr/sbin/mosquitto -c /snap/mosquitto/387/default_config.conf
14802 pts/2 S+ 0:00 grep --color=auto mosq
@biswanath:~$ sudo kill -9 13719
@biswanath:~$ sudo killall -9 mosquitto
@biswanath:~$ ps ax | grep mosq
14931 ? Ss 0:00 /bin/sh /snap/mosquitto/387/launcher.sh
14972 ? S 0:00 /snap/mosquitto/387/usr/sbin/mosquitto -c /snap/mosquitto/387/default_config.conf
14978 pts/2 S+ 0:00 grep --color=auto mosq
您已经有了另一个 Mosquitto 实例 运行。
使用 ps ax | grep mosq
查看 Mosquitto 是否仍在容器外 运行。如果找到它,请使用 sudo kill -9 PID
将 PID 替换为其进程 ID。或者你可以试试 sudo killall -9 mosquitto
.
如果这不能解决问题,请检查 Docker。
使用 docker ps
列出当前 运行 所有 Docker 个容器。
使用 docker stop ID
替换每个容器的 ID,即 运行。
如果找不到 Mosquitto 实例,请重新启动计算机并重试。
看起来你是来自 snap 的 运行 蚊子。
您可以使用以下命令停止捕捉:
$ snap stop mosquoitto
听起来您可能尝试启动 Mosquitto 两次,第一次是早期版本的遗留问题,需要删除。下面的话来自另一个线程中的post。
有一个运行 launcher.sh
的根 CRON 作业,其中包含 sudo mosquitto -d
我是怎么找到的。好吧,一旦我发现 CRON 有一个 @reboot 选项,我进一步查看并发现 CRON 是由包括 root 在内的用户使用的。所以我尝试了它并尝试 sudo crontab -l
希望使用 sudo 找到根 cronjobs 而不是 pi 用户作业,然后作为另一项工作。
在那之后,我整理了所有其他我调整过的东西,并在重启时重新启用了 systemd 作业。 sudo systemctl enable mosquitto.service
所以现在 2.0.11 可以正常工作了。我怀疑 CRON 作业是早期版本的 Mosquitto 遗留下来的(我使用的是 1.5 或 1.6),但是 2.0.11 的更新在创建 mosquitto.service 作业时并没有删除它。
在 ubuntu 16.04 中启动蚊子 docker 时出现错误。
@biswanath:~$ docker logs mosquitto-test
1609346169: mosquitto version 1.6.12 starting
1609346169: Config loaded from /mosquitto/config/mosquitto.conf.
1609346169: Opening ipv4 listen socket on port 1883.
1609346169: Error: Address in use
虽然我已经卸载了所有以前安装的mousquitto。但是 Ports(1883) 仍在被蚊子使用。需要帮助释放此端口 1883。
@biswanath:~$ sudo lsof -i TCP:1883
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mosquitto 2185 root 4u IPv4 27174 0t0 TCP *:1883 (LISTEN)
mosquitto 2185 root 5u IPv6 27175 0t0 TCP *:1883 (LISTEN)
@biswanath:~$ sudo systemctl stop mosquitto
Failed to stop mosquitto.service: Unit mosquitto.service not loaded.
当试图用 kill -9 PID 杀死时,它会再次创建。
@biswanath:~$ ps ax | grep mosq
13719 ? Ss 0:00 /bin/sh /snap/mosquitto/387/launcher.sh
13759 ? S 0:00 /snap/mosquitto/387/usr/sbin/mosquitto -c /snap/mosquitto/387/default_config.conf
14802 pts/2 S+ 0:00 grep --color=auto mosq
@biswanath:~$ sudo kill -9 13719
@biswanath:~$ sudo killall -9 mosquitto
@biswanath:~$ ps ax | grep mosq
14931 ? Ss 0:00 /bin/sh /snap/mosquitto/387/launcher.sh
14972 ? S 0:00 /snap/mosquitto/387/usr/sbin/mosquitto -c /snap/mosquitto/387/default_config.conf
14978 pts/2 S+ 0:00 grep --color=auto mosq
您已经有了另一个 Mosquitto 实例 运行。
使用 ps ax | grep mosq
查看 Mosquitto 是否仍在容器外 运行。如果找到它,请使用 sudo kill -9 PID
将 PID 替换为其进程 ID。或者你可以试试 sudo killall -9 mosquitto
.
如果这不能解决问题,请检查 Docker。
使用 docker ps
列出当前 运行 所有 Docker 个容器。
使用 docker stop ID
替换每个容器的 ID,即 运行。
如果找不到 Mosquitto 实例,请重新启动计算机并重试。
看起来你是来自 snap 的 运行 蚊子。
您可以使用以下命令停止捕捉:
$ snap stop mosquoitto
听起来您可能尝试启动 Mosquitto 两次,第一次是早期版本的遗留问题,需要删除。下面的话来自另一个线程中的post。
有一个运行 launcher.sh
的根 CRON 作业,其中包含 sudo mosquitto -d
我是怎么找到的。好吧,一旦我发现 CRON 有一个 @reboot 选项,我进一步查看并发现 CRON 是由包括 root 在内的用户使用的。所以我尝试了它并尝试 sudo crontab -l
希望使用 sudo 找到根 cronjobs 而不是 pi 用户作业,然后作为另一项工作。
在那之后,我整理了所有其他我调整过的东西,并在重启时重新启用了 systemd 作业。 sudo systemctl enable mosquitto.service
所以现在 2.0.11 可以正常工作了。我怀疑 CRON 作业是早期版本的 Mosquitto 遗留下来的(我使用的是 1.5 或 1.6),但是 2.0.11 的更新在创建 mosquitto.service 作业时并没有删除它。