介绍
Supervisor 是基于python开发的一套类unix os上通用的Client/Server模式的多进程监控和管理系统,我们可以很方便地使用该工具去启动、关闭和重启某个进程。当某个进程被意外kill,supervisor监听到该事件后,会让进程自动恢复,由此减少了开发人员手工编码对进程进行监控的工作量。
supervisord
因为 supervisor 是 C/S 模式的,所以分为服务端和客户端。supervisord即是supervisor的服务端,所以当supervisor处于运行状态时,supervisord会作为一个进程被启动,而被管理的进程将作为子进程被supervisord启动。
supervisorctl
supervisor的客户端便是我们会经常使用的 supervisorctl。该命令行管理工具可以让我们方便地使用相关命令对supervisor管理的进程进行操作,常见命令如下表所示:
|----------------------------------------|-----------------|
| supervisorctl status | 查看所有监控的子进程服务状态 |
| supervisorctl start | 启动所有子进程服务 |
| supervisorctl restart | 重启所有子进程服务 |
| supervisorctl stop all | 终止所有子进程服务的运行 |
| supervisorctl start [service-name] | 根据指定名启动某个特定的子进程 |
| supervisorctl restart [service-name] | 根据指定名重启某个特定的子进程 |
| supervisorctl stop [service-name] | 根据指定名终止某个特定的子进程 |
本篇博客仅对 supervisorctl 命令行工具的常见使用方式和使用背景做了一个大致介绍,若想了解有关 supervisor 的安装以及对服务端 supervisord 的配置等内容,请见下方参考博客。
参考: