supervisord如何优雅的新加服务

前言

现有supervisord 的管理下已经有服务正在运行,如果想要不重启正常运行的服务,还新添加应用如何实现呢?

【建议查看官方文档中的各个action介绍,以免踩坑】
http://supervisord.org/running.html#adding-a-program

前提条件

新服务的.ini文件已经放到了/etc/supervisord.d/<新服务名>.ini

官方文档中action的操作,有以下几种方法

add 【推荐 ✅】

add […]
Activates any updates in config for process/group

supervisorctl add celery

update【推荐 ✅】

update(刷新现有的配置,新服务会被添加、不会重启现有运行服务)
Reload config and add/remove as necessary, and will restart affected programs

supervisorctl update

reload 【不推荐 ❌】

reload(重启supervisod,新服务会被添加、但现有运行的服务都会重启) - 可以,但很暴力【⚠️⚠️现有运行的服务会有影响】
Restarts the remote supervisord

supervisorctl reload

直接重启 supervisord 【不推荐 ❌】

或者暴力一点,直接重启整个服务也是可以读到新的应用【⚠️⚠️注意,现有运行的服务会有影响】

systemctl restart supervisord

其他的一些常用命令记录

remove <name> [...] -删除单个项目 如果【服务在运行无法删除,必须先stop】
Removes process/group from active config

[root@k8s-srv-node9 coredns]# supervisorctl remove coredns-test
coredns-test: removed process group


start <服务名>
start all

stop <服务名>
stop all

clear <服务名>  | 注意此处清理的日志,必须是正在运行的服务,如果未运行则无法清理(其实原理supervisord就是找不着日志目录了)
clear all

restart <服务名>
restart all

update <服务名>
update all

pid
pid all

status

clear 日志清理,亲测有用

posted @ 2024-10-31 15:33  醒日是归时  阅读(2)  评论(0编辑  收藏  举报