Linux 开起启动Supervisor 安装配置

Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台服务,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。

CentOS 7 安装Linux Supervisor 

  • 安装
yum install python-setuptools
easy_install supervisor
  • 创建配置文件
# 新建目录
mkdir -p /etc/supervisor/conf.d
mkdir -p /var/log/supervisor


# 建立 supervisor 配置文件
touch /etc/supervisor/supervisord.conf

   supervisord.conf 中的内容如下

# supervisord.conf 中的内容如下
; supervisor config file

[inet_http_server]         ; inet (TCP) server disabled by default
port=*:9066                        ; (ip_address:port specifier, *:port for all iface)
username=root              ; (default is no username (open server))
password=root              ; (default is no password (open server))


[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)

; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
[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

; The [include] section can just contain the "files" setting.  This
; setting can list multiple files (separated by whitespace or
; newlines).  It can also contain wildcards.  The filenames are
; interpreted as relative to this file.  Included files *cannot*
; include files themselves.

[include]
files = /etc/supervisor/conf.d/*.conf  ; 指定需要守护进程的配置文件位置
  • 需要守护的程序配置文件 切换到上一步配置文件中指定的需要守护进程的配置文件所在的文件夹,文件内容如下,第一行名字随意,创建的配置文件名随意 注意: 如果startsecs设置为 0 将关闭异常退出检测,supervisor会不停的尝试重启被守护的进程
[program:collection]
command=/你的/可执行程序/位置
autostart=true ; supervisord守护程序启动时自动启动
autorestart=true ; supervisord守护程序重启时自动重启
startsecs=0  ; 单位秒,设置程序运行多久退出为正常退出,否则为异常退出,异常退出达到最大重试次数,将不在尝试启动程序
startretries=5 ; 程序异常重试次数
exitcodes=0  ; 指定正常退出代码
directory=/root/datacollection/
redirect_stderr=true ; 将stderr重定向到stdout
stdout_logfile = /root/datacollection/out.log
stdout_logfile_maxbytes=2MB   ; max # logfile bytes b4 rotation (default 50MB)
stdout_logfile_backups=5     ; # of stdout logfile backups (default 10)
  • 手动指定配置文件启动 supervisor
/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
  • 通过网页查看状态 程序配置文件中指定了端口和IP地址,并设置了用户名密码,本笔记直接访问本机9066端口,用户名密码均为root

  • 开机自启 编辑创建以下文件, 位置不能更换

vim /lib/systemd/system/supervisord.service

内容为

[Unit]
Description=Process Monitoring and Control Daemon
After=rc-local.service nss-user-lookup.target
[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisord shutdown
ExecReload=/usr/bin/supervisord reload
killMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
  • 然后执行systemctl enable supervisord.service设置为开机自启
  • 常用命令
  • supervisor常用命令
    
    重新启动
    supervisorctl reload
     
    查看进程
    supervisorctl status
     
    启动某个进程
    supervisorctl start xxxx
     
    停止某个进程
    supervisorctl stop xxxx
     
    重启某个进程
    supervisorctl restart xxxx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值