supervisor进程管理工具,supervisor Python
Supervisor是Python开发的一个进程管理系统,它允许用户在Linux上监视和控制进程。它可以把一个普通的命令行进程变成后台守护进程,异常退出时自动重启。本文主要介绍Python流程管理神器Supervisor,有需要的朋友可以参考一下。
一.导言二安装三。创建配置文件。初始测试五、Web界面附录:supervisorctl常用命令
目录
Supervisor是Python开发的一个进程管理系统,它允许用户在Linux上监视和控制进程。它可以把一个普通的命令行进程变成后台守护进程,异常退出时自动重启。
详细介绍:主管介绍
一、简介
Supervisor支持Linux和Mac,但不支持Windows。
系统是centos,supervisor==4.2.4。
pip3安装主管
安装完成后,Python bin目录下会有几个这样的文件。
ls /usr/local/Python38/bin
echo_supervisord_conf
监督员
超级监管者
注意:因为python bin目录添加了环境变量,所以可以直接执行这些文件。
二、安装
1.首先,构建一个目录并存储配置文件:mkdir supervisord D。
echo _ supervi sord _ conf supervi sord/supervi sord . conf
如果您报告一个错误-bash 3360/etc/supervisor d . conf :权限被拒绝,您需要切换到root。
2.创建子流程配置文件路径。
mkdir -p主管/会议
我们未来的任务,也就是我们想用作守护进程的任务,都需要一个配置文件。我们将这些配置文件放在conf.d目录下。
3.修改配置文件
vim super visor d/super visor d . conf
用以下内容替换最后一部分
[包括]
#因为我把它放在这里的根目录,也可以放在其他目录。
files=/root/super visor d/conf . d/*。主配置文件
三、创建配置文件
1.启动超级监视器。
supervi sord-c supervi sord/supervi sord . conf
这样supervisord就启动了,然后我们就可以把我们的任务交给他去守卫了。如果它停止了,它会帮助我们自动重启。
查看版本
超级v
2.编写一个简单的Shell脚本
vim supervisord/test.sh
内容如下
#!/bin/bash
而:
做
回显`日期 %Y-%m-%d %H:%m:%S
睡眠1
完成的
运行简单,Ctrl+C退出。
3.创建子流程配置文件。
vim主管/conf.d/test.conf
Test.conf内容如下:
[程序:测试]
command=sh/root/supervisord/test . sh
优先
=999 ; 相对启动优先级,数值越小越优先,默认为999
autostart=true ; 在supervisor启动时自动启动,默认为true
autorestart=true ; 在意外退出时重新启动,默认为true
startsecs=10 ; 子进程启动多少秒后状态为running则认为启动成功,默认为1
startretries=3 ; 尝试启动的最大次数,默认为3
exitcodes=0,2 ; 进程的预期退出代码列表,默认为0
stopsignal=QUIT ; 终止进程的信号,默认为TERM
stopwaitsecs=10 ; 在SIGKILL之前等待的最大秒数,默认为10
user=root ; 在某用户下设置uid来启动程序,默认不切换用户
redirect_stderr=true ; 是否重定向stdout和stderr,默认为false
stdout_logfile=/tmp/supervisor.stdout.log ; stdout的输出文件,默认为AUTO
stdout_logfile_maxbytes=50MB ; stdout最大文件大小,默认为50MB
stdout_logfile_backups=10 ; stdout文件备份数,设为0则不备份,默认为10
其实只需要配置3个参数,其它不用管:
command=sh /root/supervisord/test.sh
: 我们的子进程启动命令;stdout_logfile=/tmp/supervisor.stdout.log
: 日志;program:test
:进程名为test
,如果进程哪一天想停止启动等,需要进程名;
目前文件目录结构是这样的:
yum install treetree supervisord
supervisord
├── conf.d
│ └── test.conf
├── supervisord.conf
└── test.sh
4.重新读取配置并更新子进程
因为我们的supervisord
已经启动了,可以通过ps -ef grep supervisord.conf
查看。添加了子进程配置文件,需要把它重新加载进来:
先进入supervisord
目录: cd supervisord
,否则执行下面命令会有问题。
supervisorctl reread
再次查看进程状态
supervisorctl status
结果:
test RUNNING pid 30278, uptime 1:29:41
名为test
的这个进程已经作为守护进程在后台运行,我们来kill掉他:
kill 30278
再执行supervisorctl status
,会发现状态立马由starting
,不一会变成running
,那么supervisord
的作用已经很明显了,可以自动帮我们自动监控任务。
注:对于子进程的添加、删除、启动、停止相关命令,见附录。
五、Web 界面
web界面没多大用处,就是如果想启动、暂停进程是,不需要敲命令而已。
vim supervisord.conf
取消注释
[inet_http_server]port=*:9001 ; 此处改为*便于调试
重启 supervisord
supervisorctl reload
浏览器访问:linux_ip:9001.
附录:supervisorctl 常用命令
新增某配置文件,重新加载
supervisorctl reread
改动某配置文件,重新加载
supervisorctl update
重启 supervisord
supervisorctl reload
查看所有进程状态
supervisorctl status
查看指定进程状态
supervisorctl status <name>
启动所有子进程
supervisorctl start all
启动指定子进程
supervisorctl start <name>
重启所有子进程
supervisorctl restart all
重启指定子进程
supervisorctl restart <name>
停止所有子进程
supervisorctl stop all
停止指定子进程
supervisorctl stop <name>
添加子进程到进程组
supervisorctl add <name>
从进程组移除子进程,需要先stop。注意:移除后,需要使用reread和update才能重新运行该进程
supervisorctl reomve <name>
欢迎访问我的个人博客,听听我的故事。
到此这篇关于Python进程管理神器Supervisor的文章就介绍到这了,更多相关PythonSupervisor进程管理内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。