zoukankan      html  css  js  c++  java
  • Linux系统下 Supervisor 安装搭建

    在 web 应用部署到线上后,需要保证应用一直处于运行状态,在遇到程序异常、报错等情况,导致 web 应用终止时,需要保证程序可以立刻重启,继续提供服务。

    所以,就需要一个工具,时刻监控 web 应用的运行情况,管理该进程。

    Supervisor 就是解决这种需求的工具,可以保证程序崩溃后,重新把程序启动起来等功能。

    Supervisor 是一个用 Python 写的进程管理工具,可以很方便的用来在 UNIX-like 系统(不支持 Windows)下启动、重启(自动重启程序)、关闭进程(不仅仅是 Python 进程)。

    一、 安装supervisor

    # yum install python-setuptools
    # easy_install pip
    # pip install supervisor  -- 或者-- easy_install supervisor
    # mkdir /etc/supervisor/
    安装完成之后,在/etc/supervisor目录下生成配置文件
    # echo_supervisord_conf>/etc/supervisor/supervisord.conf
     
    如果需要卸载supervisor 执行 #  pip uninstall supervisor
     
    修改supervisor配置文件: vi /etc/supervisor/supervisord.conf
    把末尾的include去掉;添加配置文件
    1 [include]
    2 files = /etc/supervisor/conf.d/*.ini

    conf.d文件夹中的app_admin.ini配置文件如下

     1 [root@centos]# cat appadmin.ini 
     2  
     3 [program:appadmin]
     4 process_name=%(program_name)s_%(process_num)02d
     5 command=nohup /data/appadmin/app_admin
     6 directory=/data/appadmin     ##程序的目录地址最好要添加,要不然会报错,找不到路径
     7 autostart=true
     8 autorestart=true
     9 user=root
    10 numprocs=1
    11 redirect_stderr=true
    12 stdout_logfile=/etc/supervisor/logs/appadmin.log  #日志文件

    一切准备完毕后 执行

    supervisord -c /etc/supervisor/supervisord.conf

    启动supervisor,即可完成程序的持续运行!

    运行 supervisorctl命令即可查看程序的运行状态

    1 [root@appadmin conf.d]# supervisorctl
    2 appadmin:appadmin_00             RUNNING   pid 2375, uptime 0:26:40
    3 supervisor>

    一些supervisor的常用命令

    1 进入supervisor 命令-->  #supervisorctl
    2 查看命令           -->  #help
    3 重载项目           -->  #reload
    4 查看状态           -->  #status

    二、设置supervisor开机自起:

    重启服务器后,发现supervisor开机启动,于是只好手动添加脚本 实现开机启动

    编辑sh文件并给予权限

    1 [root@centos]# vi /etc/rc.d/sh/appadmin.sh 
    2 #!/bin/bash
    3 # 开机启动supervisor
    4 supervisord -c /etc/supervisor/supervisord.conf
    5 chmod +x /etc/rc.d/sh/appadmin.sh

    编辑/etc/rc.d/rc.local 加入开机启动

    1 [root@appadmin conf.d]# vi /etc/rc.d/rc.local 
    2 #!/bin/bash
    3 touch /var/lock/subsys/local
    4 #开机启动supervisor脚本
    5 /etc/rc.d/sh/appadmin.sh
    6  
    7 chmod +x /etc/rc.d/rc.local

    重启服务器后,即可看到已经有 app_admin在运行中。

    至此,所有操作进行完毕

  • 相关阅读:
    ASP.NET MVC之从控制器传递数据到视图四种方式
    MVC发布到IIS,出现HTTP 错误 404.0
    超详细MySQL安装及基本使用教程
    node.js中使用node-xlsx插件生成excel数据并导出
    jquery给一组radio赋值和取值
    node.js生成excel下载各种方法分析对比--附excel-export方法
    JS中substr和substring的区别
    jq触发a标签的href跳转
    jq中跳出方法、for循环和each循环
    IIS应用程序池频繁崩溃的问题
  • 原文地址:https://www.cnblogs.com/haw2106/p/9869597.html
Copyright © 2011-2022 走看看