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

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

file

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
Linux fdisk命令详解
WordPress版本和PHP版本对应关系列表

发表我的评论

电子邮件地址不会被公开。 必填项已用*标注

22 + 43 =

ajax-loader