mosquitto.db文件无法创建

时间:2018-05-31 06:27:56

标签: persistence mqtt mosquitto

在测试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 :(得分:0)

如果在代理运行时删除该文件,则可能无法重新创建该文件,因为代理已经拥有一个打开的文件句柄。

在进程打开文件时删除文件实际上并不删除文件,只是它在目录中的条目,进程将继续读取/写入文件,直到句柄关闭

如果在删除文件后重新启动mosquitto,它将不会写入文件,直到它实际上有一些数据要写入文件,例如:

  • 有订阅的客户(在QOS 1或2)
  • 发送一些消息
  • 断开订阅者
  • 发送更多消息
  • 关闭mosquitto

现在应该编写包含客户端断开时发布的消息的文件。