mosquitto似乎不喜欢以下用于持久性的选项。

# Persistence configuration
persistence true
persistence_location /data/qos/
persistent_client_expiration 8h


/data/qos确实存在并且已设置权限。

sudo chown mosquitto:mosquitto /data/qos
persist.conf目录下的文件/etc/mosquitto/conf.d中。复制之前,我将停止代理,并在复制后使用以下命令重新启动它:

sudo service mosquitto stop
sudo service mosquitto start


/var/log/mosquitto/mosquitto.log没有提供任何线索说明可能是问题所在。

那么,上面提供的用于持久性的选项有什么问题呢?

评论

如果您停止服务并手动启动su mosquitto -c mosquitto -c /etc/mosquitto/mosquitto.conf
,会发生什么?
另外,您确定它不会启动还是只是在启动时不创建持久性文件?

@hardillb我确实记得使用/ usr / bin / mosquitto -c /etc/mosquitto/mosquitto.conf成功启动mosquitto,即没有切换用户。是的,蚊子从来没有开始过; ps -ef |中未列出任何进程grep mosq。顺便说一句,程序一般是什么?停止代理,将.conf文件复制到/etc/mosquitto/conf.d文件夹中,然后启动代理?

#1 楼

如上文所述,持久性配置选项在单独的文件-persist.conf下的/etc/mosquitto/conf.d中提供。但是,/etc/mosquitto/mosquitto.conf中已经存在持久性选项。删除这些内容后,persist.conf中的设置就会通过。

mosquitto可以警告此类冲突。

评论


当Mosquitto无法启动时(至少在v1.4.x上),Mosquitto会标记重复的值。错误:配置中的persistence_file值重复。

– hardillb
18年6月28日在11:06

嗯...我想我是1.4,因为我想从Ubuntu ppa编译websockets的版本。不要回想该信息。也许我错过了?

– cogitoergosum
18年6月28日在11:15