Файл mosquitto.db не создается - PullRequest
0 голосов
/ 31 мая 2018

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

Я неправильно понял, что посредник создает файл .db согласно конфигурации?Будем благодарны за любые указания о том, как получить свежий файл mosquitto.db.

# Place your local configuration in /etc/mosquitto/conf.d/
#
# A full description of the configuration file is at
# /usr/share/doc/mosquitto/examples/mosquitto.conf.example

pid_file /var/run/mosquitto.pid
max_inflight_messages 1

persistence true
persistence_file mosquitto.db
persistence_location /var/lib/mosquitto/

log_dest file /var/log/mosquitto/mosquitto.log

include_dir /etc/mosquitto/conf.d

password_file /etc/mosquitto/passwd
allow_anonymous false
max_queued_messages 1000000

autosave_interval 30
# autosave_on_changes false

1 Ответ

0 голосов
/ 31 мая 2018

Если вы удалите файл во время работы посредника, он, вероятно, не будет воссоздан, поскольку посредник уже будет содержать дескриптор открытого файла.

Удаление файла, когда он открыт процессом, фактически не удаляетфайл, только его запись в каталоге, процесс будет продолжать чтение / запись в файл, пока дескриптор не будет закрыт.

Если перезапустить mosquitto после удаления файла, он не будет записывать в файл дона самом деле он имеет некоторые данные для записи, например,

  • имеет подписанного клиента (при QOS 1 или 2)
  • отправляет некоторые сообщения
  • отключает подписчика
  • отправлять больше сообщений
  • shutdown mosquitto

Теперь должен быть записан файл, содержащий сообщения, которые были опубликованы, когда клиент был отключен.

...