supervisor命令,supervisord命令
原文链接:http://blog.csdn.net/xyang81/article/details/51555473
supervisor(http://supervisord.org/)是用Linux/Unix系统下的进程管理工具Python开发的客户端/服务器服务,不支持Windows系统。它可以轻松地监视、启动、停止和重启一个或多个个进程。当supervisort管理的一个进程意外死亡时,supervisort会在监控到该进程死亡后自动重新拉起。方便的实现了进程自动恢复的功能,不再需要编写shell脚本来控制。
因为Supervisor是Python开发的,所以在安装之前要检查系统上是否安装了Python 2.4版或更高版本。CentOS7和Python2.7中介绍了Supervisor的安装和配置步骤:
1.安装Python包管理工具(easy_install)。Easy _ install是setuptools包中包含的一个命令。使用easy _ install实际上是调用setuptools来完成模块的安装,所以安装setuptools就可以了。wget-no-check-certificate https://bootstrap.pypa.io/ez_setup.py-O- sudo python 2、安装supervisor easy _ Install supervisor安装完supervisor后,会生成三个执行程序:supervisortd、supervisorctl、echo_supervisord_conf,分别是supervisor的守护进程服务(用于接收进程管理命令)、客户端(用于与守护进程通信并发送管理进程的指令)和初始配置文件生成程序。
3.在配置和运行超级用户服务时,您需要指定超级用户配置文件。如果未指定,默认情况下将在以下目录中找到它:
$ CWD/supervisord . conf $ CWD/etc/supervisord . conf/etc/supervisord . conf/etc/Supervisor/supervisord . conf(从Supervisor 3.3.0开始)./etc/super visor . conf(相对于可执行文件)./supervisor d.conf(相对于可执行文件)$ cwd表示supervisor d程序运行的目录。
您可以通过运行echo_supervisord_conf程序来生成supervisor的初始化配置文件,如下所示:
mkdir/etc/supervisor echo _ supervisor d _ conf/etc/supervisor/supervisor d . conf 4、配置文件的参数描述supervisor的配置参数有很多。这里介绍一下常用的参数配置。详细配置和说明请参考官方文档。
注:分号(;)开头的配置表示注释。
[UNIX _ http _ server]file=/tmp/supervisor . sock;UNIX套接字文件,将由supervisorctl使用;chmod=0700socket文件的模式,默认为0700;chown=nobody:no group;socket文件的所有者,格式:uid:GID;[inet _ http _ server];HTTP服务器,提供web管理接口;端口=127 . 0 . 0 . 1:9001;管理在Web后台运行的IP和端口。如果是对公网开放,需要注意安全;用户名=用户;登录后台的用户名;密码=123;登录后台[supervisor d]日志文件的密码=/tmp/supervisor d . log;Log,默认为$ CWD/supervisor d . log log file _ max bytes=50mb;日志文件大小,如果超过,将会旋转,默认为50MB如果设置为0,则表示没有大小限制logfile _ backups=10日志保留备份的默认数量是10;将其设置为0意味着不会备份loglevel=info日志级别,默认信息,其他:debug,warn,trace PID file=/tmp/supervisor d . PID;Pid文件nodaemon=false是否在前台启动,默认为false,即启动minfds为daemon=1024可以打开的文件描述符的最小值,默认为1024minprocs=200可以打开的最小进程数,默认为200[supervisor CTL]server URL=UNIX://tmp/supervisor . sock;通过UNIX socket连接supervisord,路径与unix_http_server段中的文件一致;server URL=http://127 . 0 . 0 . 1:9001;通过HTTP连接到supervisord[program:xx]是被管理进程的配置参数,xx是进程的名称[program:xx]command=/opt/Apache-Tomcat-8 . 0 . 35/jpdxs/catalina . shrun;程序开始命令autostart=truesupervisord启动时自动启动startsecs=10如果启动10秒后没有异常退出,说明流程正常启动。默认值为1秒自动重启=真;退出后自动重启程序,可选值:[意外,真,假],默认值为意外,表示进程在重启startretries=3之前被意外杀死;自动重试失败的次数,默认值为3user=tomcat。用哪个用户启动进程,默认为rootpriority=999进程启动优先级默认为999,值小的话redirect _ stderr=true将stderr重定向到stdout,默认为false stdout _ log file _ max bytes=20mb;Stdout日志文件大小,默认为50MBstdout_logfile_backups=20。stdout日志文件的备份数量,默认为10;Stdout日志文件,需要注意的是,当指定的目录不存在时,无法正常启动,需要手动创建目录(supervisord会自动创建日志文件)。stdout _ log file=/opt/Apache-Tomcat-8 . 0 . 35/logs/catalina . outstopasgroup=false;默认为false,当一个进程被杀死时是否向该进程组发送停止信号,包括子进程killasgroup=false如果默认值为false,则向进程组(包括子进程)发送终止信号;包含其他配置文件【包含】files=relative/directory/*;ini您可以指定一个或多个包含以结尾的配置文件的示例。ini:
[include]files=/opt/absolute/filename . ini/opt/absolute/*。ini foo.conf配置?ini 5。配置管理流程管理配置参数。不建议在supervisord.conf文件中写入所有配置参数。每个进程都应该编写一个配置文件,并将其放在include指定的目录中,以便将其包含在supervisord.conf文件中。
1 /etc/supervisor/config.d目录用于存储流程管理的配置文件。
2.修改/etc/supervisor/supervisor d . conf中的include参数,将/etc/supervisor/conf.d目录添加到include中。
[包含]files=/etc/supervisor/config . d/*。初始化设置文件的后缀名
以下是配置Tomcat进程的示例:
[程序:Tomcat]命令=/opt/Apache-Tomcat-8。0 .35/jpdxs/卡特琳娜。sh runstdout _ log file=/opt/Apache-Tomcat-8。0 .35/原木/卡特琳娜。outautostart=true auto restart=true starts secs=5 priority=1 stopas group=true killas group=true 5,启动监督者服务supervisord-c/etc/supervisor/supervisord。会议6,控制进程6.1 交互终端超级管理员启动成功后,可以通过监督员客户端控制进程,启动、停止、重启。运行监督员命令,不加参数,会进入监督者客户端的交互终端,并会列出当前所管理的所有进程。
上图中的雄猫就是我们在配置文件中[程序:tomcat]指定的名字。输入帮助可以查看可以执行的命令列表,如果想看某个命令的作用,运行帮助命令名称,如:帮助停止
停止tomcat //表示停止雄猫进程全部停止//表示停止所有进程//.6.2 bash终端主管状态监督员停止tomcatsupervisorctl启动tomcatsupervisorctl重新启动tomcatsupervisorctl重新读取监督员更新6.3 Web管理界面
出于安全考虑,默认配置是没有开启网管理界面,需要修改supervisord.conf配置文件打开超文本传送协议(超文本传输协议的缩写)访权限,将下面的配置:
;[inet _ http _ server];默认情况下禁用inet (TCP)服务器;端口=127 .0 .0 .1:9001;(ip地址:端口说明符,*:所有接口的端口);用户名=用户;(默认为无用户名(开放服务器));密码=123;(默认为无密码(开放服务器))修改成:
[inet _ http _ server];inet (TCP)服务器被默认端口=0.0.0.0:9001禁用;(ip地址:端口说明符,*:所有接口的端口)用户名=用户(默认为无用户名(开放服务器))密码=123;(默认为无密码(开放服务器))端口:绑定访问互联网协议(互联网协议)和端口,这里是绑定的是本地互联网协议(互联网协议)和9001端口
用户名:登录管理后台的用户名
密码:登录管理后台的密码
7、开机启动监督者服务7.1 配置启动脚本服务一进入/lib/systemd/system目录,并创建主管。服务文件
【单位】描述=主管后=网络。target[Service]Type=forkingExecStart=/usr/jpdxs/supervisor或-c/etc/supervisor/supervisecstop=/usr/jpdxs/supervisorctl $ OPTIONS shutdownExecReload=/usr/jpdxs/supervisorctl $ OPTIONS reloadKillMode=process restart=on-failure restart sec=42s[Install]wanted by=multi-user。具体目标2设置开机启动
启动脚本启用supervisor.servicesystemctl守护进程-重装3号,修改文件权限为766
chmod 766 supervisor.service 7.2配置服务类型服务#!/jpdxs/bash # #主管这个脚本打开主管# #作者:迈克麦格拉思mmcgrath@redhat.com(基于yumupdatesd)# # chkconfig:-95 04 # #描述:主管是一个进程控制实用程序。它有一个基于网的# xmlrpc接口以及一些其他漂亮的特性.进程名:超级visor # config:/etc/supervisor/超级visor。conf # PID文件:/var/run/super visor。PID # #源函数库2008/etc/RC。d/初始化。d/functions RETVAL=0 start(){ echo-n $ 启动supervisord: daemon supervisord-c/etc/supervisor/supervisor。conf RETVAL=$?echo[$ RETVAL-eq 0]touch/var/lock/subsys/supervisord } stop(){ echo-n $ Stopping supervisord: kill proc supervisord echo[$ RETVAL-eq 0]RM-f/var/lock/subsys/supervisord } restart(){ stop start } case $ 1 in start)start;停)停;重新启动强制重新加载重新加载)重启;cond restart)[-f/var/lock/subsys/supervisord]restart;status)状态主管RETVAL=$?*) echo $ 用法:$ 0 { start stop status restart reload force-reload cond restart } exit 1esacexit $ RETVAL将上述脚本内容保存到/etc/rcd/init。d/主管文件中,修改文件权限为755,并设置开机启动
chmod 755/etc/RC。d/初始化。d/supervisor chkconfig supervisor注意:修改脚本中监督者配置文件路径为你的监督者的配置文件路径
其它Linux发行版开机启动脚本:https://github.com/Supervisor/initscripts
注意:Supervisor只能管理非守护进程,这意味着Supervisor不能管理守护进程。否则,会提示存在太快(进程日志可能有详细信息)是不正常的。示例中的Tomcat默认情况下是作为守护进程启动的,所以我们将其改为catalina.sh run作为前台进程运行。
Yum安装
Install epel-Release YUM Install-Y Supervisor Supervisor未在标准CentOS源中发布,因此需要安装epel源。这种方法可能不会安装最新版本,但更方便。安装完成后,会自动为您生成配置文件。
默认配置文件:/etc/supervisord.conf
只需将流程管理配置文件放入:/etc/supervisord.d/
默认日志文件://tmp/supervisord.log可以查看进程的启动信息。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。