Supervisord部署beego,并实现重启
Supervisord部署beego,并实现重启
最近在研究Go语言,上回在Gin开发的项目中实现了平滑重启,这次尝试对之前用beego开发的项目进行了平滑重启,在研究了2天时间之后,最后在beego官网看到了Supervisord,尝试用Supervisord部署,然后重启模拟是不是可以,最后成功实现了,在中间踩了一些坑,在这里跟大家分享下这个过程。
博主是的环境是centos,python版本是2.6,并非2.7,也是同样可以解决,更多资料大家可以参考Supervisor部署。
一、安装Supervisord
由于官网的下载方式是支持python2.7的,但是博主的环境是2.6的,所以稍微改了下,输入以下命令行进行安装并初始化:
wget http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c11-py2.6.egg sh setuptools-0.6c11-py2.7.egg easy_install supervisor echo_supervisord_conf >/etc/supervisord.conf mkdir /etc/supervisord.conf.d
这样就完成了安装并配置初始化,如果发现链接在服务器上下载不了,大家可以复制链接,在本地下载后再将包丢回服务器,这样也是可以的,博主就是这样操作
二、修改配置 /etc/supervisord.conf
直接输入命令行
vi /etc/supervisord.conf
对文件进行编辑,拉到最后修改成,记得将;去掉,这里也是个坑。
[include] files = /etc/supervisord.conf.d/*.conf
三、上传beego应用
我们在本地beego的项目输入以下命令行进行打包
bee pack -be GOOS=linux
上传打包文件到服务器上,然后解压,博主存放的路径是/home/test,可执行文件是personForum,为了稳妥点,给他最高权限,输入以下命令行
chmod -R 777 personForum
四、新建管理的应用
输入以下命令行新建应用配置文件
cd /etc/supervisord.conf.d vim personForum.conf
然后根据beego项目所在路径,填写路径,博主的路径是/home/test,可执行文件是personForum,文件内容如下
[program:personForum] directory = /home/test command = /home/test/personForum autostart = true startsecs = 5 user = root redirect_stderr = true
在这里提醒下,最后手敲方式,如果复制进去的话,记得第一行不要留空,然后回车键记得删除,不然会报错,我就是在这里踩了坑,用编辑器也一样出现这个问题,所以为了稳妥还是手敲吧,大伙。
五、开启Supervisord并加载配置
我们开启Supervisord,记得输入这个命令行,不然会报错,这一点官网也没说明
cd /etc supervisord -c supervisord.conf
加载配置后,我们再输入以下命令,加载最新配置
supervisorctl reload supervisorctl update
如果能到这一步就没什么问题了。
六、开启管理,实现重启
完成上面那一步我们家就可以先开启我们刚刚配置的应用,直接输入以下命令
supervisorctl start personForum
personForum就是刚刚我们创建的管理文件中[program:personForum]的personForum。
我们可以看看这会的进程
可以看到进程ID是9156,然后我们输入以下命令行重启
supervisorctl restart personForum
是不是你们也有疑问,这里有个过程是停止后再开始,会不会中途不能访问,我试了下是可以访问的,不影响访问,然后这会再看进程ID是多少
这会的进程ID是9162,再次访问网站,发现可以访问,完美解决
七、报错解决办法
1、如果在启动应用过程中出现以下错误
xxx: ERROR (no such process)
输入以下命令行
supervisorctl update
2、如果出现以下错误
supervisorctl error (no such process)
请查看本篇教程第五点。
以上就是beego使用Supervisord部署,并实现重启。
0条评论