在MQTT代理中添加用户

时间:2016-12-30 13:03:15

标签: mqtt mosquitto

我有一个在Ubuntu 16.04中运行的MQTT代理。我的问题是如何在代理运行时添加用户?当我使用

添加用户时
mosquitto_passwd -c /etc/mosquito/pwfile user2

用户确实显示在pwfile中,但在重新启动代理之前,我无法从外部源访问该用户。 我试过用

sudo mosquitto -c /etc/mosquitto/mosquitto.conf

重新加载mosquitto.conf文件,但它会出现此错误

1483102542: Config loaded from /etc/mosquitto/mosquitto.conf.
1483102542: Opening ipv4 listen socket on port 1883.
1483102542: Error: Address already in use

那么我应该怎样做才能将用户添加到代理并加载它们而无需重新启动代理?(我使用ESP8266设备访问此代理,我也尝试使用MQTTLens(chrome扩展)访问新添加的用户但是我无法访问)

2 个答案:

答案 0 :(得分:5)

有两种选择。

  1. Mosquitto在启动时读取密码文件,因此在运行mosquitto_passwd时不会接收更改。您可以通过向mosquitto代理发送HUP信号来强制mosquitto重新读取文件
  2. 如果您要动态添加/删除用户并使用mosquitto-auth-plugin允许您使用数据库存储用户名/密码和ACL条目,则更好的选择是停止使用密码文件。

答案 1 :(得分:2)

您可以通过向流程发送 SIGHUP 来重新加载配置,而不会中断现有连接。

$kill -SIGHUP PID

这将重新加载pwfile。但不是PID文件。有关 HUP 重新加载文件的更多信息,请参阅:mosquitto conf documentation

此处显示完整步骤:reload mosquito config without restarting the service

相关问题