当我们完成了一次项目开发,通常会将完成的项目部署在服务器上。为了能时刻掌握项目的运行情况,如程序是否正常运行,是否可以对运行中的程序进行如重启,停止等操作。这个时候,一个好用的进程管理就显得尤为重要了。
Supervisor是由Python编写的进程管理工具,它允许用户监视和控制类UNIX操作系统上的大量进程(不仅仅是Python程序),而且支持批量进程的开、关、重启操作及进程运行情况,为项目的维护提供了很大的便利
它的安装方式很简单,以Centos操作系统为例,既可以从Python官网下载源码包进行安装,也可以使用 pip install supervisor的方式进行安装,安装之后,通常默认会在/etc/supervisor/ 或者 /etc/supervisor.d/ 路径生成一个配置文件,配置内容如下:
当我们完成对Supervisor的配置之后,需要按照其配置文件的写法及自己的实际需要,编写配置文件,简单的写法介绍如下:
当配置完成后,执行 supervisorctl -c /etc/supervisord.conf,这样Supervisor就运行起来了
然后我们可以直接执行 supervisorctl 查看进程运行状态:
上面这个命令会进入 supervisorctl 的 shell 界面,然后可以执行不同的命令了:
> status # 查看程序状态
> stop usercenter # 关闭 usercenter 程序
> start usercenter # 启动 usercenter 程序
> restart usercenter # 重启 usercenter 程序
> reread # 读取有更新(增加)的配置文件,不会启动新添加的程序
> update # 重启配置文件修改过的程序
上面这些命令都有相应的输出,除了进入 supervisorctl 的 shell 界面,也可以直接在 bash 终端运行:
supervisorctl status
supervisorctl stop usercenter
supervisorctl start usercenter
supervisorctl restart usercenter
supervisorctl reread
supervisorctl update
除了 supervisorctl 之外,还可以配置 supervisrod 启动 web 管理界面,这个 web 后台使用 Basic Auth 的方式进行身份认证。
除了单个进程的控制,还可以配置 group,进行分组管理。
经常查看日志文件,包括 supervisord 的日志和各个 pragram 的日志文件,程序 crash 或抛出异常的信息一半会输出到 stderr,可以查看相应的日志文件来查找问题。
领取专属 10元无门槛券
私享最新 技术干货