【问题标题】:Stop the mosquitto (MQTT) broker from listening to a port using the command line使用命令行停止 mosquitto (MQTT) 代理侦听端口
【发布时间】:2013-09-22 22:22:41
【问题描述】:

当我第一次运行 Mosquitto (MQTT) 代理时,没有任何问题。但是,从他第二次使用默认配置运行它开始,由于以下错误,我无法成功运行代码:

1379497253:mosquitto 1.2 版(构建日期 2013-09-17 17:59:39+0530)开始 1379497253:使用默认配置。 1379497253:在端口 1883 上打开 ipv6 侦听套接字。 1379497253:错误:地址已在使用中

我想知道如何从命令行停止代理。如果有人能帮忙就好了。

【问题讨论】:

    标签: sockets ipv6 mqtt mosquitto


    【解决方案1】:

    你没有说你使用的是哪个操作系统,但假设它是 Linux 并且你有 mosquitto 在后台运行,你只需使用 kill 命令。

    使用 ps 找到当前运行的 mosquitto 实例的 pid 然后杀死该 pid。

    【讨论】:

    • 杀死 pid 不应该是最好的答案。当它作为服务运行时,停止服务是一种更好的方法
    • @manasouza 鉴于问题中完全缺乏信息,这是确保它被停止的唯一有保证的方法。我们不确定它是否作为服务运行。
    【解决方案2】:

    如果您不知道 PID,那么您可以在 linux 中使用“pkill”而不是“kill”。 命令:“杀灭蚊子”

    【讨论】:

    • PKill 对我有用。我的 vps 没有 servicectl 并且“服务 mosquitto stop”也无法正常工作。所以谢谢。
    【解决方案3】:

    mosquitto 开始成为一项服务。

    sudo vi /etc/mosquitto/mosquitto.conf #more detail in `man mosquitto.conf`
    
    sudo vi /etc/mosquitto/conf.d/custom.conf #add or change listening port as your need
    
    sudo service mosquitto restart
    

    【讨论】:

      【解决方案4】:

      您可以在 bash 中使用自己的批处理脚本文件,例如 mosquit.sh。 这是我在 CentOS 上停止它的脚本。

      #!/bin/sh
      sudo kill $(ps aux |awk '/mosquitto/ {print $2}')
      

      【讨论】:

        【解决方案5】:

        假设它是 linux 服务,kill 命令只会停止使用该特定套接字,并会在杀死 PID 后在另一个套接字上打开。在 redhat 上,要终止服务是 systemctl stop mosquitto

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-01-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多