欢迎使用CSDN-markdown编辑器

来源:互联网 发布:sql分组求和 编辑:程序博客网 时间:2024/06/05 09:13

Supervisor介绍:

Supervisor 是一个 Python 开发的 client/server 系统,可以管理和监控类 UNIX 操作系统上面的进程。它可以同时启动,关闭多个进程,使用起来特别的方便。

组成部分

supervisord(server 部分):读入配置文件并管理子进程,supervisord会自动将应用程序的进程转为守护进程,这样即使你退出shell也没影响。注意,如果一个进程已经是守护进程了,那用supervisord监控时,会报如下错误,因此用supervisor监控的程序,必须以前台进程的方式启动。

FATAL     Exited too quickly (process log may have details)

supervisorctl(client 部分):命令行客户端,用户可以通过它与不同的 supervisord 进程联系,获取子进程的状态,如

supervisorctl reread ; 重载配置文件,并不重启任何进程supervisorctl reload ; 重新启动supervisord进程supervisorctl stop(start, restart) xxx,停止(启动,重启)某一个进程(xxx);supervisorctl update: 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启;

supervisor 的安装

    yum install python-pip     easy_install supervisor

安装完成后,会生成三个执行程序:supervisortd、supervisorctl、echo_supervisord_conf,其中echo_supervisor_conf 是生成supervisor 配置文件的进程。

Supervisor 对守护进程的处理

Supervisor只能管理非daemon的进程,也就是说Supervisor不能管理守护进程。否则提示Exited too quickly (process log may have details)异常。因此我们需要将一些daemon进程运行的程序,进行一下处理。

  • tomcat 的处理:
/opt/tomcat/bin/catalina.sh run
  • Nginx 处理:
增加 daemon off 至nginx.conf 的全局配置项中

配置管理项,修改 supervisord.conf 文件

在conf文件的最后,添加如下内容

[program:nginx]command=/usr/sbin/nginx -c /etc/nginx/nginx.confnumprocs=1autorestart=trueredirect_stderr=truestdout_logfile=/var/log/supervisor-nginx.logstderr_logfile=/var/log/supervisor-nginx.errloglevel=info

以上内容只介绍了管理一个nginx进程的情况,如果是多个进程,建议Include 进来,进行分类配置,具体可以参看 supervisord.conf 文件中

;[include];files = relative/directory/*.ini

针对以上进行修改,指定一个放配置文件的目录。

1 0
原创粉丝点击