supervisor 和 mysql 开机启动问题

2020-04-22 09:13:31 +08:00
 OnlyO
我用 supervisor 控制 celery 和 uwsgi 的开机启动.
但是每次启动时 uwsig 和 celery 都会报错 MySQLdb._exceptions.OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)").
这是因为 mysqld 在开机时还没有启动,但是我将 mysql 也用 supervisor 启动,并设置了优先级还是同样的问题.
请问大家遇到这种问题吗?如何解决的?
3910 次点击
所在节点    Python
25 条回复
Variazioni
2020-04-22 15:43:33 +08:00
supervisor 顺序启动这块是个坑。。
只能设置优先级。但是 supervisor 不能检测你的程序有没有完全启动。。
所以并没有什么卵用。。
我现在的方案是用关闭配置文件里的自启动。用脚本启动。。supervisorctl start xxx 。然后各 x 秒,启动下一个。。
vZexc0m
2020-04-22 15:56:16 +08:00
可以把 supervisor 的 autostart=true 和 utorestart=true 打开,然后在 celery 和 uwsgi 启动时判断能否连接 MySQL,不能连接则抛出异常停止进程,然后 supervisor 会自动重启 celery 和 uwsgi 。
OnlyO
2020-04-22 16:20:01 +08:00
@vZexc0m 你这思路很清奇,我用 systemd 了.
Kobayashi
2020-04-22 18:33:05 +08:00
supervisor 控制 MySQL 启动,这什么骚操作
knightdf
2020-04-22 21:06:39 +08:00
mysql 在 supervisor 之前启动不就好了?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/664857

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX