supervisor搭建后,可以通过supervisorctl 管理配置的服务。配置supervisor开机自启后服务将自动启动。

1.安装

yum install supervisor

2.设置开机启动
systemctl enable supervisord.service

3.配置文件
supervisord 的配置 文件是 /etc/supervisord.conf 
自定义配置文件目录是/etc/supervisord.d,该目录下文件已.ini为后缀

配置文件说明
[unix_http_server]
file=/tmp/supervisor.sock   ;UNIX socket 文件,supervisorctl 会使用
;chmod=0700                 ;socket文件的mode,默认是0700
;chown=nobody:nogroup       ;socket文件的owner,格式:uid:gid

;[inet_http_server]         ;HTTP服务器,提供web管理界面
;port=127.0.0.1:9001        ;Web管理后台运行的IP和端口,如果开放到公网,需要注意安全性
;username=user              ;登录管理后台的用户名
;password=123               ;登录管理后台的密码

[supervisord]
logfile=/tmp/supervisord.log ;日志文件,默认是 $CWD/supervisord.log
logfile_maxbytes=50MB        ;日志文件大小,超出会rotate,默认 50MB,如果设成0,表示不限制大小
logfile_backups=10           ;日志文件保留备份数量默认10,设为0表示不备份
loglevel=info                ;日志级别,默认info,其它: debug,warn,trace
pidfile=/tmp/supervisord.pid ;pid 文件
nodaemon=false               ;是否在前台启动,默认是false,即以 daemon 的方式启动
minfds=1024                  ;可以打开的文件描述符的最小值,默认 1024
minprocs=200                 ;可以打开的进程数的最小值,默认 200

[supervisorctl]
serverurl=unix:///tmp/supervisor.sock ;通过UNIX socket连接supervisord,路径与unix_http_server部分的file一致
;serverurl=http://127.0.0.1:9001 ; 通过HTTP的方式连接supervisord

; [program:xx]是被管理的进程配置参数,xx是进程的名称
[program:xx]
command=/opt/apache-tomcat-8.0.35/bin/catalina.sh run  ; 程序启动命令
autostart=true       ; 在supervisord启动的时候也自动启动
startsecs=10         ; 启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒
autorestart=true     ; 程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启
startretries=3       ; 启动失败自动重试次数,默认是3
user=tomcat          ; 用哪个用户启动进程,默认是root
priority=999         ; 进程启动优先级,默认999,值小的优先启动
redirect_stderr=true ; 把stderr重定向到stdout,默认false
stdout_logfile_maxbytes=20MB  ; stdout 日志文件大小,默认50MB
stdout_logfile_backups = 20   ; stdout 日志文件备份数,默认是10
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile=/opt/apache-tomcat-8.0.35/logs/catalina.out
stopasgroup=false     ;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
killasgroup=false     ;默认为false,向进程组发送kill信号,包括子进程

;包含其它配置文件
[include]
files =/etc/supervisord.d/*.ini    ;可以指定一个或多个以.ini结束的配置文件

4.其他组成部分
supervisord:服务守护进程 
supervisorctl:命令行客户端 
Web Server:提供与supervisorctl功能相当的WEB操作界面 
XML-RPC Interface:XML-RPC接口

5.supervisord 命令
启动 systemctl start supervisord.service
关闭 systemctl stop supervisord.service
重启 systemctl restart supervisord.service

6.supervisord 客户端管理命令
supervisorctl status                            # 状态
supervisorctl stop nginx                #关闭 nginx
supervisorctl start nginx               #启动 nginx
supervisorctl restart nginx             #重启 nginx
supervisorctl reread
supervisorctl update                    #更新新的配置

7.配置启动文件(开机自启)
vi /etc/rc.d/init.d/supervisord,写入配置

#!/bin/bash
#
# supervisord   This scripts turns supervisord on
#
# Author:       Mike McGrath <mmcgrath@redhat.com> (based off yumupdatesd)
#
# chkconfig:    - 95 04
#
# description:  supervisor is a process control utility.  It has a web based
#               xmlrpc interface as well as a few other nifty features.
# processname:  supervisord
# config: /etc/supervisord.conf
# pidfile: /var/run/supervisord.pid
#

# source function library
. /etc/rc.d/init.d/functions

RETVAL=0

start() {
        echo -n $"Starting supervisord: "
        daemon supervisord
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/supervisord
}

stop() {
        echo -n $"Stopping supervisord: "
        killproc supervisord
        echo
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/supervisord
}

restart() {
        stop
        start
}

case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart|force-reload|reload)
        restart
        ;;
  condrestart)
        [ -f /var/lock/subsys/supervisord ] && restart
        ;;
  status)
        status supervisord
        RETVAL=$?
        ;;
  *)
        echo $"Usage: $0 {start|stop|status|restart|reload|force-reload|condrestart}"
        exit 1
esac

exit $RETVAL

保存退出后修改权限为可执行
chmod 755 /etc/rc.d/init.d/supervisord

8.配置进程
例如有个nginx 进程设置
vim  /etc/supervisord.d/nginx.ini
内容如下:
[program:nginx]
;directory = /www/lanmps/bin                                 ; 程序的启动目录
command = /www/lanmps/bin/nginx start                ; 启动命令,可以看出与手动在命令行启动的命令是一样的
autostart = true                                                         ; 在 supervisord 启动的时候也自动启动
startsecs = 5                                            ; 启动 5 秒后没有异常退出,就当作已经正常启动了
autorestart = true                                   ; 程序异常退出后自动重启
startretries = 3                                        ; 启动失败自动重试次数,默认是 3
user = www                                           ; 用哪个用户启动
redirect_stderr = true                               ; 把 stderr 重定向到 stdout,默认 false
stdout_logfile_maxbytes = 20MB                   ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 20                          ; stdout 日志文件备份数
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile = /www/logs/usercenter_stdout.log
stopasgroup=false     ;默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
killasgroup=false     ;默认为false,向进程组发送kill信号,包括子进程

; 可以通过 environment 来添加需要的环境变量,一种常见的用法是修改 PYTHONPATH
; environment=PYTHONPATH=$PYTHONPATH:/path/to/somewhere

linux(CentOS7)服务器环境搭建之-supervisor相关推荐

  1. Linux服务器环境搭建《Redis、Nginx、mysql8安装》

    Linux服务器环境搭建<Redis.Nginx.mysql8安装> 1.Redis安装 直接操作: cd / cd /usr/local mkdir redis cd redis wge ...

  2. python服务器环境搭建(2)——安装相关软件

    在上一篇我们在本地的虚拟服务器上安装好CentOS7后,我们的python web服务.自定义的python service或python脚本需要在服务器上运行,还需要在服务器安装各种相关的软件才行, ...

  3. python服务器环境搭建_python服务器环境搭建(2)——安装相关软件

    在上一篇我们在本地的虚拟服务器上安装好CentOS7后,我们的python web服务.自定义的python service或python脚本需要在服务器上运行,还需要在服务器安装各种相关的软件才行, ...

  4. LAMP服务器环境搭建及工程部署

    LAMP服务器环境搭建及工程部署 这篇文章是我之前讲的环境搭建和项目部署视频讲解的文字版本,由于之前直播录屏的时候没有空闲的服务器进行搭建,所以没有详细的截图等可以展示. 现在刚好我手头有一台vps刚 ...

  5. 第1章 Linux系统介绍与环境搭建准备

    第1章 Linux系统介绍与环境搭建准备 本章以操作系统的介绍作开篇,首先介绍操作系统的基础概念以及操作系统的原理:然后带领读者了解Unix/Linux的诞生和发展史,以及市面上常见的Unix/Lin ...

  6. 基于阿里云服务器环境搭建到项目上线系列文章之一——putty使用秘钥登录远程服务器

    基于阿里云服务器环境搭建到项目上线系列 前言:最近购买了域名和一台阿里云服务器准备做点东西放上去,所以准备把环境搭建到项目上线的过程记录下来,计划一个系列6篇文章 基于阿里云服务器环境搭建到项目上线系 ...

  7. lux系统服务器安装后多大,服务器环境搭建

    框架使用: maven的setting文件修改 运行环境配置:dev 服务器环境搭建: 一.docker安装 1.卸载旧版本 sudo yum remove docker ​ docker-clien ...

  8. 阿里云ECS服务器环境搭建(2) —— ubuntu 16.04 安装中文输入法(搜狗输入法)

    阿里云ECS服务器环境搭建(2) -- ubuntu 16.04 安装中文输入法(搜狗输入法) 1. 环境 阿里云 ECS服务器 (4核 8G 4M) Ubuntu16.04-64-bit 图形界面 ...

  9. 腾讯云主机Ubuntu之服务器环境搭建以及宝塔面板安装

    腾讯云主机Ubuntu之服务器环境搭建以及宝塔面板安装 我也是第一次使用Ubuntu服务器,所以遇到很多问题,在这里记录一下 1.云服务器购买 建议新手选择快速配置,因为自定义配置里面有自己选择很多参 ...

最新文章

  1. ios bug 分析
  2. 10.2.0.5启动enterprise manager
  3. QT的mouseMoveEvent事件失效
  4. Reading Club·Beijing第1期DeepQA框架与Siri架构会场笔记(PPT下载)
  5. Mozilla Thimble,在线html,javascript编辑器
  6. atitit.颜色查找 根据范围 图像处理 inRange
  7. window防火墙端口映射_Windows 防火墙上也有端口映射功能
  8. 孙玄:微服务架构何去何从?
  9. 软件开发生命周期的五个阶段
  10. 2.6.2 QDate类与QDateEdit控件介绍(日期处理)
  11. html加载图片路径问题
  12. IIS URL 重写
  13. 北京大学人工智能研究院落户武汉,致力于打造一流人工智能研发机构
  14. 学习reflux的总结
  15. 启动nodejs时报错 internal/modules/cjs/loader.js:584的解决办法
  16. HDOJ(HDU)1000A + B Problem Java题解
  17. 高德开放平台 - 学习/实践
  18. airpods pro 使用电脑无法充电的问题
  19. 1.8 正则表达式【匹配一个或多个字符】
  20. 批量转换图片大小的代码和软件:2345看图王

热门文章

  1. 使用双标记写html代码时如何进行嵌套,【2020Python修炼记】前端开发之 前端基础和HTML入门...
  2. aws 云存储 Linux sdk,aws-sdk for JavaScript 对接私有云对象存储
  3. autoHotkey — 连击/双击/重复 按键触发
  4. stm32cube,hal库来实现PS2手柄数据发送
  5. 京东区块链(智臻链):1. 应用场景
  6. 一文搞懂ECU休眠唤醒之利器-TJA1145
  7. LIN休眠唤醒及测试心得
  8. leetcode 思路——64. 最小路径和——174. 地下城游戏
  9. 智子观测宣布和数榜签约合作,强化大数据采集技术
  10. 2020年起重机司机(限桥式起重机)考试题及起重机司机(限桥式起重机)考试技巧