supervisor 守护多个进程_使用Supervisor管理多个进程

在Supervisor当中管理多个进程

1.最简单的场景就是在配置文件当中定义多个program:

[program: A]

[program: B]

[program: C]

这样,我们可以使用supervisorctl [start|stop] [program_name]的方式来方便的启动、重启指定的进程

2. 更进一步,我们可以定义program_group

[group: Test]

programs: A, B, C

这样,可以使用supervisorctl [start|stop] [group_name:program_name]的方式来管理进程

3. 我们通过Supervisor启动的进程都会作为supervisor的子进程运行

如下图所示,通过supervisor启动了3个process,pid分别为72891/72892/72893, 他们的父进程都是supervisor

这3个process当中有一个为任务队列process,这个process会fork一些它自身的子进程

如下图所示,fork了8个子进程

此时,如果执行supervisorctl stop [program_name], 是不会一并停止program的子进程的

supervisor仅会停止program主进程的运行,而它的子进程会被init收养

要想一并停止program子进程的运行,需要增加配置

[program: A]

stopasgroup: true #stop program之时一并stop其子进程

killasgroup: true #在停止program子进程的时候,发送kill信号

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值