我有一组使用supervisord运行的进程,我希望能够用脚本自动化启动和停止这些进程。 但是有时候,supervisor的关闭命令执行时间过长,导致等待时间越来越多。 目前我的做法是:
for each in "${args[@]}"; do
(supervisorctl -c configs/supervisord_${each}.conf shutdown) & sleep 8s & (kill -9 `ps aux | grep supervisor| grep ${each} | a wk '{print $2}'` && kill -9 `ps aux | grep supervisor| grep ${each} | awk '{print $2}'`)
done
如果超时停止太久,是否有更干净的方法可以在几秒钟后杀死supervisor进程?
明确一点,我正在尝试关闭使用supervisorctl -c {config path} shutdown
命令关闭的supervisor进程,而不是supervisorctl shutdown
命令本身。
supervisorctl -c {conf name} shutdown
进程本身。我想放弃尝试关闭它,而是直接将其杀掉。 - Unpossible/var/run
目录中写入其pid(常见用法)?如果是这样,最好挖掘一下那里,因为从ps(1)
输出中收集信息需要大量资源。如果主管程序是您编写的程序,将其pid写入某个地方可能是一个好主意,然后...那么supervisorctl程序有什么用处呢?(如果它不能正确地完成工作)我认为你需要更多的思考。 - Luis Colorado~/tmp/pids/{app}
中。谢谢! - Unpossible