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。

       我们可以看看这会的进程

1.png

可以看到进程ID是9156,然后我们输入以下命令行重启

supervisorctl restart personForum

2.png

是不是你们也有疑问,这里有个过程是停止后再开始,会不会中途不能访问,我试了下是可以访问的,不影响访问,然后这会再看进程ID是多少

3.png

这会的进程ID是9162,再次访问网站,发现可以访问,完美解决

       七、报错解决办法

        1、如果在启动应用过程中出现以下错误

xxx: ERROR (no such process)

输入以下命令行

supervisorctl update

       2、如果出现以下错误

 supervisorctl error (no such process)

请查看本篇教程第五点。

       以上就是beego使用Supervisord部署,并实现重启。