我使用--persistent=True
作为systemd服务运行芹菜花1.0.0。每次重新启动都会失败,并出现错误SSLV3_ALERT_HANDSHAKE_FAILURE
,这是由于db type could not be determined
错误消息而导致的。
在删除--persisten=True
后,它曾经在每次重新启动时都能完美地工作,但在每次重启后,我无法使我的芹菜花数据库保持完整。
以下是对我有效的方法。
首先,SSLV3_ALERT_HANDSHAKE_FAILURE
是因为我错误地配置了哨兵+乌鸦。
其次,真正的错误db type could not be determined
是由于新启动的服务无法连接到旧flower服务的数据库而产生的。我不知道为什么会这样,但这里有一个非常有用的GitHub问题。
最后,我尝试指定--db
标志来指定我的花数据库位置和名称。这为我解决了问题。现在,即使使用--persistent=True
,服务也能成功重启。
后来,我发现flower创建的默认数据库由主机的主要用户所有。但是,在服务文件中指定--db
标志后,数据库就归芹菜用户所有。这是我真正的解决方案。
Take Away:如果您将flower作为一个systemd服务运行,那么请确保flower数据库文件为celener用户所有。或者更好的方法是始终使用--db
标志来将您从这个问题中拯救出来。