用Supervisor管理后台进程

在服务器上时常会有一些需要在后台长时间运行的脚本,比如队列服务的监听器及某些服务的server端等。Supervisor是一套用python开发的进程管理软件,将需要长期运行的脚本交由supervisor进行管理以便对进程状态进行监控,如当进程意外终止时,supervisor能自动重启该进程,达到类似守护进程的效果。

在 *inux 中,你可以直接通过软件源获取安装包进行安装,如:apt-get install supervisor,不过还是更推荐通过python软件管理工具进行安装,以便获取到较新的版本:

easy_install supervisor

Supervisor 由两个部分组成:supervisord 和 supervisorctl。supervisord是服务端,用于将指定的进程当做子进程来运行。supervisorctl是一个客户端程序,可以查看日志并通过统一的会话来控制进程。

通过easy_install安装的supervisor并没有创建软件的目录及默认配置文件,推荐的目录结构最好是这样的:

- etc/
    - supervisor/
        - conf.d/
        - supervisord.conf

在命令行输入 echo_supervisord_conf > /etc/supervisor/supervisord.conf 可在该目录下生成默认的配置文件。在配置包括supervisord的监听端口,及所要管理的服务的启动方式等。默认配置文件十分详细,可根据自己的需要具体参考。

supervisord -c /etc/supervisor/supervisord.conf 即可运行程序。

比较有意思的是,supervisor还提供了一个web管理界面,以便用户能更方便的管理supervisor中的进程。
supervisor-web-ctl

最后介绍几个常用的控制命令:

supervisorctl update //更新配置改变的进程,没有修改的进程则不受影响
supervisorctl restart //重启进程
supervisorctl reload  //重新载入配置文件
supervisorctl tail  //查看输出记录
Show Comments