在测试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
答案 0 :(得分:0)
如果在代理运行时删除该文件,则可能无法重新创建该文件,因为代理已经拥有一个打开的文件句柄。
在进程打开文件时删除文件实际上并不删除文件,只是它在目录中的条目,进程将继续读取/写入文件,直到句柄关闭
如果在删除文件后重新启动mosquitto,它将不会写入文件,直到它实际上有一些数据要写入文件,例如:
现在应该编写包含客户端断开时发布的消息的文件。