2016-12-30 4 views
2

У меня есть брокер MQTT, работающий в Ubuntu 16.04. Мой вопрос в том, как я могу добавить пользователей во время работы брокера? При добавлении пользователя с помощьюДобавление пользователей в MQTT Broker

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), но мне не удалось получить доступ)

ответ

1

Для этого есть 2 варианта.

  1. Mosquitto считывает файл с паролем при его запуске, поэтому при запуске mosquitto_passwd не будет изменяться. Вы можете заставить москит перечитывать файл, отправив mosquitto broker сигнал HUP.
  2. . Лучшим вариантом является прекращение использования файла пароля, если вы собираетесь динамически добавлять/удалять пользователей и использовать mosquitto-auth-plugin, что позволяет использовать базы данных для хранения имен пользователей/паролей и записей ACL.
0

Вы можете Обновить конфигурацию без прерывания существующих соединений, посылая SIGHUP процесса.

$kill -SIGHUP PID 

Это перезагрузит файл pwfile. Но не PID-файл. Более подробная информацию о перегрузочных файлах с HUP можно найти в: mosquitto conf documentation

Выполните шаги показаны здесь: reload mosquito config without restarting the service

+0

Этого ответа в значительной степени точно так же, как часть 1 моего ответ – hardillb