进程守护主管
准备工作:
环境:
Centos 7 (Centos6.5不适合以下教程)
Python在=2.7(升级见:Python升级教程)
pip包管理工具安装(已安装可跳过)
<代码> curl https://bootstrap.pypa.io/get-pip。py - o get-pip.py python get-pip。py 代码>
安装:
-
<李>安装superviosr李>
<代码> pip安装主管代码>
-
<李>配置配置文件
<代码>//创建配置目录 mkdir - p/etc/supervisor/conf//输出默认配置文件 echo_supervisord_conf在/etc/主管/supervisord.conf 代码>
配置文件
李><代码> # vim/etc/supervisor/supervisord.conf ;管理配置文件示例。 ; ;更多信息;键值对添加到环境中 strip_ansi=false;在日志条ansi转义代码;def.假 ;rpcinterface:主管部分必须保持在配置文件 ;RPC (supervisorctl/web界面)。额外的接口可能 ;添加通过定义在[rpcinterface: x]部分分开。 [rpcinterface主管): 主管。rpcinterface_factory=supervisor.rpcinterface: make_main_rpcinterface ;supervisorctl部分配置supervisorctl将如何连接 ;supervisord。无论是unix_http_server配置匹配设置 ;或inet_http_server部分。 (supervisorctl) serverurl=unix:///var/运行/主管。袜子;使用unix://unix socket的URL ;serverurl=http://127.0.0.1:9001;使用一个http://url来指定一个inet插座 ;用户名=克里斯;应该一样(* _http_server)如果设置 密码=123;应该一样(* _http_server)如果设置 ;提示=mysupervisor;cmd行提示符(默认“主管”) ;history_file=~/c_history;使用readline历史如果可用 ;下面的示例程序部分显示所有可能的程序分段值。 ;创建、B=?”;进程环境添加(def不添加) ;serverurl=汽车;覆盖serverurl计算(childutils) ;下面的示例eventlistener部分显示所有可能的事件 ;分段的价值观。创建、B=?”;进程环境添加 ;serverurl=汽车;覆盖serverurl计算(childutils) ;下面的样本组部分显示所有可能的值。创建一个 ;或者更“真实”的组:部分创建“异构”过程组。 (组:thegroupname); ;程序=progname1 progname2;每个指的是“x”(计划:x)定义 优先级=999;999年相对开始优先(默认) ;(包括)部分可以包含“文件”设置。这 ;设置可以列出多个文件(由空格或分离 ;换行)。它还可以包含通配符。文件名是 ;解释为相对于这个文件。包括文件*不* ;包括文件本身。 (包括)=/etc/supervisor/conf/* . ini文件代码>
-
<李>配置开机启动李>
<代码> # vim/lib/systemd/system/supervisord.service (单位) 描述=过程监测和控制守护进程=rc-local.service后 (服务) 类型=分支 ExecStart=/usr/bin/supervisord - c/etc/supervisor/supervisord.conf SysVStartPriority=99 (安装) WantedBy=multi-user.target 代码>
-
<李>添加启动服务
<代码> systemctl启用supervisord.service systemctl启动/重新启动/停止supervisord.service 代码>李> <李>增加自定义守护文件
如新增服务配置文件
<代码> # vim/etc/supervisor/conf/xdb.ini (项目:xdb-service) 命令=/home/hadoop/anaconda3/env/xdb/bin/python/数据/服务/xdb-service/app.py 目录=/数据/服务/xdb-service/stdout_logfile=/数据/服务/xdb-service/日志/supervisor.log stdout_logfile_maxbytes=200 mb 自动启动=true startretries=10 用户=hadoop代码>
<代码> systemctl重载supervisord.service 代码>李>
启动:
根用户启动
# # #启动服务
<代码> supervisorctl开始 supervisorctl开始service_name 代码>
# # #关闭服务
<代码> supervisorctl停止一切 supervisorctl停止service_name 代码>
# # #查看状态
<代码> supervisorctl状态(service_name) 代码>
# # #更新配置文件
<代码> supervisorctl更新代码>
# # #重新启动所有服务或者是某个服务
<代码> supervisorctl重启 supervisorctl重启service_name 代码>