当前位置: 首页 > Linux

3分钟学会supervisor看门狗入门

时间:2023-04-06 23:22:54 Linux

软硬件环境centos7.6.181064bitcat/etc/redhat-release#查看系统版本supervisor3.4.0python2.7.5supervisor介绍supervisor是一个用python写的进程管理工具语言,它可以方便地监控、启动、停止和重启一个或多个进程。当一个进程被意外杀掉时,supervisor监测到进程死掉了,可以方便的自动恢复进程,不需要程序员或者系统管理员写代码来控制。supervisord安装yuminstall-yepel-releaseyuminstall-ysupervisorstart&open自启动systemctlstartsupervisordsystemctlenablesupervisord其他命令systemctlstopsupervisordsystemctlstartsupervisordsystemctlstatussupervisordsystemctlreloadsupervisordsystemctlrestartsupervisordsupervisor管理员可以提供基于web的控制非常方便通过点击页面上的按钮完成启动和重启进程等操作。进入配置文件,开启对web端的支持vim/etc/supervisord.conf如果提供给外部访问,需要将端口改为本地ip地址#取消10-13行的注释,里面的数字前面是行号[inet_http_server];inet(TCP)服务器默认禁用port=192.168.26.121:9001;(ip_address:portspecifier,*:portforalliface)username=user;(默认为无用户名(开放服务器))密码=123;(默认为无密码(openserver))配置完成后,重启服务systemctlrestartsupervisordsupervisordapplicationconfiguration进入supervisord配置文件cat/etc/supervisord.conf通过配置文件最后一行查看[include]files=supervisord.d/*.ini就是说我们所有的应用配置文件都保存在这个目录下,以.ini格式命名保存,地址可以自己修改,但是不要修改后缀让我们创建一个被监控的应用程序创建一个测试python配置创建一个名为python的应用程序配置vim/etc/supervisord.d/python.ini配置文件内容,其中command是我们的应用程序需要执行的命令[program:python]#这里的python是我们在web前端和终端显示的监控名称command=python/tmp/supervisordtest/test.py#我们要监控的文件地址autostart=trueautorestart=truestartsecs=1startretries=3redirect_stderr=truestdout_logfile=/tmp/supervisordtest/access_python.log#日志地址,可以自己配置目录stderr_logfile=/tmp/supervisordtest/error_python.log#日志地址,可以自己配置目录创建test.pymkdir/tmp/supervisordtestvim/tmp/supervisordtest/test.py程序内容:开启无限循环,保持打印内容whileTrue:print(100)restartsupervisord使配置文件生效可视化web视图web端可以进行重启、停止、清除日志、查看日志等操作安装几个supervisor相关的命令后,会生成3个系统命令supervisorctl、supervisord和echo_supervisord_confsupervisord。运行supervisor时会启动一个进程supervisord,它负责启动被管理进程并将被管理进程作为自己的子进程启动,并且可以在被管理进程出现crash时自动重启supervisorctl是一个命令行管理工具,可用于执行startstoprestart和其他命令来管理这些子进程,例如sudosupervisorctlstartdemoweb其中demoweb是进程的名称。详细命令说明见下表命令说明supervisorctlstartprogram_name启动某个进程supervisorctlstopprogram_name停止某个进程supervisorctlrestartprogram_name重启某个进程supervisorctlstatusprogram_name检查某个进程的状态supervisorctlstopall停止所有进程\\supervisorctlreload加载最新的配置文件,重启所有进程supervisorctlupdate根据最新的配置,重启配置发生变化的进程,没有更新的进程不受影响。用法是这样的echo_supervisord_conf>测试.conf