写几条自己用supervisor遇到的一些小坑
- Python 3 Wall的反派代表,一直不能使用python3安装
- 对中文输出支持奇差,估计是使用python2造成的,举个例子,假如你要在python2里面print输出一个unicode中文字符。我试了各种办法,均无解(和supervisor使用子进程运行程序的策略有关),好在使用logging模块输出中文居然没啥问题-_-,正式运行环境也是全部使用logging代替print
- 即使用python3,输出中文也会遇到问题,需要在配置文件添加
environment=LANG="en_US.utf8", LC_ALL="en_US.UTF-8", LC_LANG="en_US.UTF-8"
解决 - 写配置文件的时候一个变量不能配置多行,我一开始因为environment太长。写了2行,导致后面的没生效,折腾好久
- 修改supervisor配置文件后,如果配置文件错了,不会报错!而且supervisor没有工具能对配置文件的正确性进行检查,灰常操蛋啊!
- supervisor可以检查到异常自动重启并设置最大重启次数,可是有时候会造成无限重启这种情况。因为重启后立刻退出才会触发最大重启次数机制,假如程序一直是运行了十分钟自动退出。那么会造成无限重启,可以使用它的api写一个脚本监控这种情况,进行警告
1 | import xmlrpc.client |