1.  Superivisor简介:

Supervisor是一个C/S系统,它允许用户在类UNIX系统上监控和管理一系列的进程。你可以把一个进程以Daemon的形式用Supervisor来管理。

2.  安装:

使用pip来安装Supervisor:[root@test1 ~]# pip install supervisor

如果CentOS系统中没用安装pip,可以通过如下命令安装pip:[root@test1 ~]# yum -y install python-pip

3.  配置文件:

Supervisor的配置文件需要手动执行命令来生成,如下:[root@test1 ~]# echo_supervisord_conf > /etc/supervisord.conf

4.  常用的配置项:command=/bin/cat                 ---- 启动程序时执行的命令;

directory=/tmp                   ---- 执行目录,若有/home/test/test1.py,将directory设置成/home/test,则command只需设置成python test1.py。否则command必须设置成绝对路径;

process_name=%(program_name)s     ---- 进程启动,使用program name作为进程名,默认值;

autostart=true                   ---- 随Supervisor启动一起启动;

startsecs=1                      ---- 等待多长时间后认为程序启动成功,默认为1;

startretries=3                   ---- 启动失败时的重试次数,默认为3;

user=root                        ---- 以root身份运行程序;

priority=999                     ---- 优先级。值越高,最后启动,最先被关闭,默认值999。

5.  命令:

Supervisor有两个可执行程序 :supervisord 和 supervisorctl。

supervisord用来依据配置文件的策略管理后台守护进程;

supervisorctl管理员用于向后台守护进程发送“启动/重启/停止”等指令。

6.  一个例子,使用Supervisor管理一个Python Flask程序hello.py:[program:flasky]

directory=/opt/flasky/

command=/opt/flasky/venv/bin/python hello.py runserver --host 192.168.1.101 -p 8080

autostart=true

startsecs=10

startretries=2

user=root

stderr_logfile=/tmp/flasky-error.log

stdout_logfile=/tmp/flasky-error.log

7.  启动Supervisord:[root@test1 ~]# /usr/bin/supervisord -c /etc/supervisord.conf

8.  查看进程状态:[root@test1 ~]# /usr/bin/supervisorctl status

flasky                           STARTING

[root@test1 ~]# /usr/bin/supervisorctl status

flasky                           RUNNING   pid 46778, uptime 0:00:10

[root@test1 ~]# /usr/bin/supervisorctl status

flasky                           RUNNING   pid 46778, uptime 0:00:13

9.  Supervisorctl管理命令:supervisorctl status                ---- 查看supervisor管理进程的状态;

supervisorctl stop programname      ---- 用来关闭某个进程,programname指上例中的flasky;

supervisorctl start programname     ---- 用来启动某个进程;

supervisorctl restart programname   ---- 用来重启某个进程;

supervisorctl stop all              ---- 关闭所有的进程;

supervisorctl reload                ---- 停止所有进程,载入最新的配置文件,并根据最新的配置启动、管理进程;

supervisorctl update                ---- 根据最新的配置文件,启动新配置的进程或重启配置有变化的进程,没有改动过的进程不会受到影响;

supervisorctl shutdown              ---- 关闭supervisor服务。

10、执行supervisorctl时异常:error: , : file:

这时可以在执行supervisorctl时通过-c选项指定配置文件的位置:[root@test1 ~]# /usr/bin/supervisorctl -c /etc/supervisord.conf status

曾经有一次面试,面试官提问:“有一个脚本,如何让它在开机之后一小时的时候开始执行?”

我答:“在脚本开头加上‘sleep 3600’,再把脚本加入rc.d目录开机启动。”

其实,用Supervisor就可以更合理地实现。

mysql用supervisor管理_使用Supervisor管理进程相关推荐

  1. linux常用指令介绍_软件包管理_VIM编辑器的使用_用户和组账户管理_文件权限管理

    1.1. 文件目录操作命令 ls 显示文件和目录列表 -l 列出文件的详细信息 -a 列出当前目录所有文件,包含隐藏文件 mkdir 创建目录 删除?rmdir  非空 -p 父目录不存在情况下先生成 ...

  2. myftpadmin+proftpd+mysql架设ftp服务器_配置proftpd-admin管理proftpd服务器

    系统:CentOS 5.7 64bit 原有环境:LNMP.org v0.7 proftpd版本:1.3.4a web管理:proftpd-admin 1.2 一. ProFTPd 的安装 1. 下载 ...

  3. mysql查询计算机系信息_在学生管理数据库中查询通信系和计算机系的所有教师信息...

    在学生管理数据库中查询通信系和计算机系的所有教师信息 答:select * from 教师 where 系部代码 in(select 系部代码 from 系部 where 系部名称 in('通信系', ...

  4. mysql 商品规格表_完成后台管理系统功能(九)商品规格列表的展示,添加以及删除...

    商品规格的实现图: 规律: 1.同一类商品的规格项分组相同. 2.同一类商品的规格项目是相同的.规格项目是跟商品关联. 3.不同商品规格参数的值是不同的 1 页面效果展示: 2.规格列表的展示功能 用 ...

  5. mysql建图书馆表_数据库图书管理建表与修改表

    根据调研选定实体及相应属性画出E-R图 ​ 2.将E-R模型转换为对应关系模型,并指出主码和外码 图书book(书号,类别,出版社,作者,书名,定价,备注): 读者reader(编号,姓名,单位,性别 ...

  6. mysql查询课程最高分_在“成绩管理”数据库中,查询每门课程的最高分,要求得到的信息包括课程名称和分数。正确的命令是( )。 A.SELE_搜题易...

    统计只有2名以下(含2名)学生选修的课程情况,统计结果中的信息包括课程名称.开课院系和选修人数,并按选课人数排序.正确的命令是(  ). A.SELECT 课程名称,开课院系,COUNT(课程编号)A ...

  7. 用mysql创建教务管理系统_创建教务管理数据库 mysql创建数据库步骤

    为什么提示数据库创建失败? name=教务管理系统_log, filename="D:\sql server\教务管理系统_data.mdf",改成name=教务管理系统_log, ...

  8. 会话管理_优秀会话管理指南

    会话管理 Enterprises are much more overwhelmed with conversations than ever before. Not only do they hav ...

  9. java redis管理_优雅时间管理Java轻松做到,想学么?

    原标题:优雅时间管理Java轻松做到,想学么? 来源 |http://rrd.me/gCQHp 前言:需求是这样的,在与第三方对接过程中,对方提供了token进行时效性验证,过一段时间token就会失 ...

最新文章

  1. 华为云苏嘉:如何整合预训练模型和知识图谱做医疗推理?
  2. 几条曲线构建Android表白程序
  3. 如何实现在网页复制后加上网站的来源href
  4. linux安装mysql5.5.52,Linux系统上安装MySQL 5.5prm
  5. Android Studio Process 'command ...\aapt.exe'' finished with non-zero exit value 1
  6. linux命令:watch 、lsmod、mdadm 创建软RAID
  7. 揭秘情场高手的三大套路
  8. ======第四章存储器管理======
  9. mysql学习day04
  10. java中的interface
  11. navacate连接不上mysql_解决navicat连接不上mysql服务器
  12. 【转】Pycharm的激活
  13. common.css
  14. RBF神经网络及其应用【神经网络】
  15. Centos中jdk安装及环境变量配置
  16. js实现视频截图,并通过post请求发送图片
  17. dsp 28377 +RX-8025T 实现RTC功能
  18. python实现《扫雷》小游戏
  19. 十倍业务增长下,饿了么技术如何应对(中)?
  20. java人际对战五子棋_系统框图如下 java实现五子棋程序 可以实现人人对战 人机对战 简单功能 悔棋 认输...

热门文章

  1. AIR 中 File 对象的几个系统文件夹及其属性.
  2. [Android] 使用Matrix矩阵类对图像进行缩放、旋转、对比度、亮度处理
  3. iOS之深入分析GCD的函数与队列以及多种组合使用
  4. LeetCode Algorithm 103. 二叉树的锯齿形层序遍历
  5. 盖茨发文谈如何实现零碳目标 称看好电动车未来
  6. 2014\Province_C_C++_A\1 猜年龄
  7. 《数据库原理与应用》(第三版) 第8章 关系数据库理论 基础 习题参考答案
  8. 机器人写诗项目——递归神经网络(RNN)
  9. 2017年第八届蓝桥杯C/C++ C组国赛 —— 第三题:表达式计算
  10. 征战蓝桥 —— 2014年第五届 —— C/C++A组第3题——神奇算式