【工具】supervisor进程管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【工具】supervisor进程管理相关的知识,希望对你有一定的参考价值。

参考技术A  Supervisor是基于Python开发的进程管理程序,能将一个命令行进程转为后台daemon,可以替换nohup、&、screen等启动方案。还可以实现监控进程状态,当进程异常退出时能自动重启。它通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只须在supervisor的配置文件中,填写目标进程的执行命令配置即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。

 supervisor还可以为 supervisord 或者每个子进程,设置一个非root的user,这个user就可以管理对应的进程。

1.easy_install 安装(使用默认python时,没有pip,可以用这个方法):

2.pip 安装:

3.Debian / Ubuntu可以直接通过apt安装:

4.Centos / Redhat安装需要安装epel源:

默认情况下会自动生成如下文件和目录:

默认配置文件: /etc/supervisord.conf

进程管理配置目录: /etc/supervisord.d/

没有生成上述信息的情况下,可自行创建。

可通过如下命令获取默认配置信息:

生成配置文件supervisord.conf:

以下是部分配置文件的信息:

默认为 /etc/supervisord.d 目录,可通过上述 include 中 files 参数定义,如:

可通过以下命令启动服务:

 当supervisord启动的时候根据配置信息生成 sock 、 pid 、 log 文件,并加载自定义配置信息,执行 command 指定的命令,若 include 模块开启,会自动检索 files 设定的目录的 .ini 文件,根据用户自定义配置文件执行相关命令。

常用命令:

也可通过 supervisorctl 进入 supervisord 的命令行客户端工具:

进入 supervisorctl :

使用 help 可以罗列出所有命令:

如关闭、开启指定的子进程:

此外还有:

开启web界面,需要在 supervisor 的配置文件里添加 inet_http_server 模块, reload 后可通过 localhost:9001 访问,若开放其他机器访问需要将 port=127.0.0.1:9001 改为 port=*:9001 。

效果:

此外还可以基于 xml_rpc 进行调用,嵌入到自己的应用中使用

查看服务端可用函数:

详细的这里就不赘余了,想进行深度定制的项目可以 参考官档

以上是关于【工具】supervisor进程管理的主要内容,如果未能解决你的问题,请参考以下文章

supervisor进程管理工具

supervisor进程管理工具

10: supervisor进程管理工具

Supervisor 进程管理工具

Supervisor 进程管理工具

Supervisor 进程管理工具