Supervisord安装和配置

2021-08-19  本文已影响0人  还是那个没头脑

安装

推荐使用 yum 安装(easy_install安装有坑):

yum install epel-release
yum install -y supervisor

默认配置文件:/etc/supervisord.conf
进程管理配置文件放到:/etc/supervisord.d/目录下即可

配置文件

编辑配置文件
参考地址

注:
运行supervisord服务的时候,需要指定supervisor配置文件,如果没有显示指定,默认在以下目录查找:

$CWD/supervisord.conf
$CWD/etc/supervisord.conf
/etc/supervisord.conf
/etc/supervisor/supervisord.conf (since Supervisor 3.3.0)
../etc/supervisord.conf (Relative to the executable)
../supervisord.conf (Relative to the executable)

$CWD表示运行supervisord程序的目录。

编写/etc/supervisor/dirini/test.ini内容:

touch crawl_syn_server.ini

[program:crawl-syn-server]  
user = root
directory = /sh
command = /bin/bash crawl_syn_server.sh
autostart = true
startsecs = 10
redirect_stderr = true
stdout_logfile = /var/log/crawl_syn_server.log

参数说明:
program: 程序名称,名字不同于进程名子
user=root: 用哪个用户启动进程,默认是root
command: 执行的命令,最好写绝对路径
directory: 执行命令的路径
autostart: 随supervisor启动
startsecs: 启动10秒后没有异常退出,就表示进程正常启动了,默认为1秒
autorestart: 程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启
startretries=60 : 启动失败自动重试次数,默认是3
priority=999: 进程启动优先级,默认999,值小的优先启动
redirect_stderr: 把stderr重定向到stdout,默认false
stdout_logfile_maxbytes=50MB : stdout 日志文件大小,默认50MB
stdout_logfile_backups = 10 : stdout 日志文件备份数,默认是10
stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile=/var/log/supervisord/queue-groupon-success-listen.log
stderr_logfile=/var/log/supervisord/queue-groupon-success-listen.log
loglevel=info : 日志的级别
stopasgroup=false: 默认为false,进程被杀死时,是否向这个进程组发送stop信号,包括子进程
killasgroup=false: 默认为false,向进程组发送kill信号,包括子进程

Supervisord管理命令

systemctl stop supervisord
systemctl start supervisord  # 开启 supervisord  进程守护(一定记得开启)
systemctl status supervisord
systemctl reload supervisord
systemctl restart supervisord

控制进程

1、交互终端
supervisord启动成功后,可以通过supervisorctl客户端控制进程,启动、停止、重启。运行supervisorctl命令,不加参数,会进入supervisor客户端的交互终端,并会列出当前所管理的所有进程。
2、bash终端

supervisorctl status  #查看当前运行的进程列表
supervisorctl reload #载入所有配置文件,并按新的配置启动、管理所有进程(会重启原来已运行的程序)
supervisorctl update  #更新新的配置到supervisord(不会重启原来已运行的程序)
supervisorctl reread  #当一个服务由自动启动修改为手动启动时执行一下就ok
supervisorctl start xxx  #启动某个进程
supervisorctl stop  xxx #停止某一个进程(xxx),xxx为[program:theprogramname]里配置的值
supervisorctl restart xxx  #重启某个进程
supervisorctl stop all  #停止全部进程

supervisor开机自动启动

在目录/usr/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/supervisord.conf

[Install]
WantedBy=multi-user.target

启动服务 supervisord

systemctl enable supervisord

验证一下是否为开机启动

systemctl is-enabled supervisord

注:如果启动成功后无法登陆web端,则允许9001端口通过防火墙或者关闭防火墙,关闭selinux,把supervisord.conf中的port=127.0.0.1:9001中的127.0.0.1修改成IP地址重启服务进行访问

上一篇下一篇

猜你喜欢

热点阅读