mysql用supervisor管理_使用Supervisor管理进程

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就可以更合理地实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值