博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用 supervisor 管理进程
阅读量:5101 次
发布时间:2019-06-13

本文共 2067 字,大约阅读时间需要 6 分钟。

安装:

  1. # yum install python-setuptools
  2. # easy_install supervisor

如果已经安装了epel和python-pip, 也可以简单

pip install supervisor

如果出现关于缺少 meld3 之类的,安装

git clone https://github.com/Supervisor/meld3cd meld3python setup.py install

 

配置:

1、生成模板 echo_supervisord_conf > /etc/supervisord.conf

2、在生成的 supervisord.conf 文件末尾增加

  1. [program:<任意取名>]
  2. command=<命令行>  ;需要执行的命令)
  3. user =root  ;(default  is  current  user , required  if  root)
  4. autostart=true  ;start at supervisord start (default: true)
  5. autorestart=true  ;whether/when to restart (default: unexpected)
  6. startsecs=3  ;number of secs prog must stay running ( def . 1)
  7. stderr_logfile=/tmp/ss_err.log  ;redirect proc stderr to stdout (default false) 错误输出重定向
  8. stdout_logfile=/tmp/ss.log  ;stdout log path, NONE  for  none; default AUTO, log输出
  9. (更多配置说明请参考:http://supervisord.org/configuration.html)

 例如:

[program:ss]command = python /home/wwwroot/shadowsocks-rm/shadowsocks/servers.pyuser = rootautostart = trueautorestart = true

 

supervisor 命令行:

1、supervisord -c /etc/supervisord.conf  //启动supervisor, 用指定的配置文件

2、supervisorctl //进入supervisorctl 控制台,支持命令包括:

add    clear  fg        open  quit    remove  restart   start   stop  update    avail  exit   maintail  pid   reload  reread  shutdown  status  tail  version

可以直接带后面输入,例如 : supervisorctl status  //查看状态。

修改了 /etc/supervisord.conf ,需要执行 supervisorctl reload 来重新加载配置文件

 

如果想管理ss进程,应该用supervisorctl {start|stop|restart} ss

查看ss在后台的状态:ps -ef | grep servers.py

 

supervisor 做成自启动服务:

CentOS 7的服务systemctl脚本存放在:/usr/lib/systemd/,有系统(system)和用户(user)之分,像需要开机不登陆就能运行的程序,存系统服务里即:/usr/lib/systemd/system目录下。每一个服务以.service结尾,一般会分为3部分:[Unit]、[Service]和[Install],[Unit]部分主要是对这个服务的说明,内容包括Description和After,Description用于描述服务,After用于描述服务类别  [Service]部分是服务的关键,是服务的一些具体运行参数的设置,这里Type=forking是后台运行的形式,PIDFile为存放PID的文件路径,ExecStart为服务的具体运行命令,ExecReload为重启命令,ExecStop为停止命令,PrivateTmp=True表示给服务分配独立的临时空间,注意:[Service]部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径则会报错![Install]部分是服务安装的相关设置,可设置为多用户的

 

该例子中 supervisord 已经作为服务脚本安装与system 目录下,所以只需要调用 centos 的 systemctl 命令置为开机启动

systemctl enable supervisord

 

转载于:https://www.cnblogs.com/zhenfei/p/6196952.html

你可能感兴趣的文章
CLR 关于强命名程序集 .
查看>>
[BZOJ 3489] A simple rmq problem 【可持久化树套树】
查看>>
JS组件系列——表格组件神器:bootstrap table
查看>>
Idea+Maven+Spring+SpringMVC+MyBatis环境搭建
查看>>
sidebar滚动
查看>>
7专题总结-高频题high frequency
查看>>
cf17A Noldbach problem(额,,,素数,,,)
查看>>
简单遗传算法
查看>>
NYOJ 104 最大子矩阵(二维DP)
查看>>
opencv 矩阵类数据的运算
查看>>
SQL Server2016安装
查看>>
Cube Stacking P0J 1988(加权并查集)
查看>>
解析IE, FireFox, Opera 浏览器支持Alpha透明的方法
查看>>
快速排序
查看>>
Java 之 Serializable 序列化和反序列化的概念,作用的通俗易懂的解释
查看>>
智能家居-语音控制
查看>>
软件分析
查看>>
【实验】动态显示二位七段数码管
查看>>
爬楼梯与未名湖的烦恼
查看>>
[转]深入理解java虚拟机 精华总结(面试)
查看>>