Categories: 编程

Supervisor执行Bash管道操作残留子进程

Supervisor是一个非常流行的linux进程管理器,可以使得管理进程更加容易和安全。

Supervisor最流行的应用场景是常驻进程的管理,比如Web服务和后台守护进程。由于Web服务和守护进程往往需要持续一直运行,所以我们会需要一个进程管理器来确保他们的运行状态。Supervisor就是这样一个非常好用的管理器,它非常简单易用,并且具备广泛的功能。

执行单个命令

安装下面的配置,正常使用c start|stop|restart XXX都没有问题

[program:kohya_ss]
command=command1
directory=/home/kohya/kohya_ss
autostart=true
autorestart=true
redirect_stderr=true
priority=10
user=kohya
stdout_logfile=/home/kohya/kohya_ss/logs/supervisor.log

执行Bash文件

[program:kohya_ss]
command=bash /home/kohya/kohya_ss/gui.sh
directory=/home/kohya/kohya_ss
autostart=true
autorestart=true
redirect_stderr=true
priority=10
user=kohya
stdout_logfile=/home/kohya/kohya_ss/logs/supervisor.log

使用supervisorctl start|stop|restart XXX发现supervisorctl的状态一直,但是如果检查服务的端口lsof -i :9091发现服务还在, 残留子进程

执行Bash 命令

[program:kohya_ss]
command=bash -c "command1|command2"
directory=/home/kohya/kohya_ss
autostart=true
autorestart=true
redirect_stderr=true
priority=10
user=kohya
stdout_logfile=/home/kohya/kohya_ss/logs/supervisor.log

最后如果要避免操作残留子进程需要加上下面的配置:

killasgroup=true
stopasgroup=true
5.0
07
Linux fdisk命令详解
WordPress版本和PHP版本对应关系列表
嘻嘻

嘻嘻IT: 笔者是一个工作七八年的程序猿老鸟,从事涉及的技术栈主要包括PHP、Linux、Devops等,喜欢研究新技术,尝试新技术,提升技术自动化和开发效率,致力于write less,do more! 技术每年都会层出不穷,领域划分的越来越细,不可能学习所有的东西,保持对技术的好奇心,理解技术中核心思想,做一个有深度,有思想的开发!

Recent Posts

都说PHP是最差的编程语言,为什么还有这么多公司在使用?

PHP是一门被广大开发者熟知的…

11小时 ago

2024 Google I/O大会放出AI大招 – 招招要友商的”命”

在谷歌年度开发者大会I/O的尾…

1天 ago

PHP Composer如何安装?

PHP Composer是PH…

3天 ago

MacOS上Missing xcrun的问题

在使用MacOS进行编程或开发…

3天 ago