zoukankan      html  css  js  c++  java
  • 进程监控工具supervisor

    supervisor是一个python编写的进程管理工具, 可以方便的管理和监控进程. supervisor分为服务端supervisord和客户端supervisorctl.

    supervisor由python编写, 可以使用pip安装:

    pip install supervisor
    

    也可以使用apt-get来安装:

    apt-get install supervisor
    

    配置supervisor

    /etc/supervisor目录下可以看到supervisord的主要配置文件supervisord.conf:

    ; supervisor config file
    
    [unix_http_server]
    file=/var/run/supervisor.sock   ; (the path to the socket file)
    chmod=0700                       ; sockef file mode (default 0700)
    
    [supervisord]
    logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
    pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
    childlogdir=/var/log/supervisor            ; ('AUTO' child log dir, default $TEMP)
    
    
    [rpcinterface:supervisor]
    supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
    
    [supervisorctl]
    serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL  for a unix socket
    
    
    [include]
    files = /etc/supervisor/conf.d/*.conf
    

    为了便于管理, 我们将需要监控的进程写入/etc/supervisor/conf.d/*.conf中, 这些配置文件将被导入主配置文件.

    新建一个blog.conf文件:

    [program:blog]
    directory=/home/www/Blog
    command=uwsgi --ini wsgi.ini
    user=www
    autostart=true
    autorestart=true
    stdout_logfile=/home/www/Blog/log/supervisor.log
    

    在启动blog子进程时supervisord会以user的身份在directory目录下执行command命令以启动子进程. 一般情况下, 每个program配置都要设置这三项.

    autostart=true表示在supervisord启动时该子进程会自动启动. 在服务器重启后只需要重启supervisord, 不再需要一个一个地启动进程.

    autoresatrt=trus表示若该子进程崩溃, supervisor会自动重启该进程.

    使用supervisorctl

    supervisorctrl客户端可以查看子进程的状态并进行控制:

    • supervisorctl status 查看各子进程运行状态

    • supervisorctl start <program> 根据program配置启动相应的子进程

    • supervisorctl stop <program> 停止子进程

    • supervisorctl restart <program> 重启子进程

    • supervisorctl reread 重新读入配置文件, 但不会增加新的程序

    • supervisorctl update 根据新读入配置文件, 更新程序配置

    需要注意的一点是supervisor更新配置文件比较麻烦, 更新原有程序的配置需要reread - update - restart三个操作, 而添加新程序也需要reread - update - start .

  • 相关阅读:
    Listbox与dataGridView的获取鼠标点击事件的区别!!!
    鼠标点击单元格显示在相应文本框中的方法(单元格事件)
    岁月不停~~
    中小学信息学奥林匹克竞赛-理论知识考点--输入输出设备
    中小学信息学奥林匹克竞赛-理论知识考点--计算机组成
    中小学信息学奥林匹克竞赛-理论知识考点--存储容量
    中小学信息学奥林匹克竞赛-理论知识考点--ASCII
    中小学信息学奥林匹克竞赛-理论知识考点--二进制
    scrapy install
    写出输出结果
  • 原文地址:https://www.cnblogs.com/Finley/p/6505323.html
Copyright © 2011-2022 走看看