supervisor进程管理工具,supervisor Python

  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 tree

  tree 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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: