最近项目中需要使用supervisor部署flask项目,supervisor只支持Linux上使用。
于是我就拿自己的腾讯云服务器,做了一下试验。试验过程曲折,我把过程记录如下。
Supervisor简介
Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程。
安装
安装非常简单,网上有很多安装方法,建议直接用yum安装,不要使用pip安装(配置比较麻烦)
1 | yum install supervisor |
配置
安装后的配置,是最重要的一步
首先是全局的默认配置
1 | [unix_http_server] |
其次是单个应用对应的配置
1 | 项目名 |
启动和常用命令
启动命令
1 | supervisord -c /etc/supervisord.conf |
常用命令
1 | supervisorctl status //查看所有进程的状态 |
如果有多行命令,可以写一个sh文件,然后在command里运行sh /绝对路径/xxx.sh