Centos平台使用 Supervisord 管理后台进程

本文介绍了如何在CentOS系统上利用Supervisord管理后台进程。首先确保安装了pip,然后安装并配置Supervisord,特别指出在添加Go语言相关进程时需考虑Gopath。详细配置可参考官方文档。启动和控制Supervisord使用`supervisord`和`supervisorctl`命令,同时提到了可以通过添加特定代码启用监听9001端口的Web管理界面,并采用Basic Auth认证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

经验来说 pip安装是好的

安装pip

yum install python-setuptools
easy_install pip
pip install supervisor
//生成必要的配置文件
echo_supervisord_conf > supervisord.conf

//将配置文件统一放在/etc下
cp supervisord.conf /etc/supervisord.conf

//为了不将所有新增配置信息全写在一个配置文件里,我们新建一个文件夹,每个配置信息新增一个配置文件,相互隔离
mkdir /etc/supervisord.d/

修改配置文件
vi /etc/supervisord.conf
加入以下配置信息

[include]
files = /etc/supervisord.d/*.conf

在重启之前随便创建一个挂在后台的命令

vi /etc/supervisord.d/tail.conf

[program:tail1]                                                                            
command=tail -f  /etc/supervisord.conf   ;常驻后台的命令
autostart=true                           ;是否随supervisor启动
autorestart=true                         ;是否在挂了之后重启,意外关闭后会重启,比如kill掉!
startretries=3                           ;启动尝试次数
stderr_logfile=/tmp/tail1.err.log        ;标准输出的位置
stdout_logfile=/tmp/tail1.out.log        ;标准错误输出的位置

注意在添加go语言的时候需要添加上他的gopath!!!

[program:data_a]
command=go run /home/centos/go/src/DataServer/main.go
directory=/home/centos/go/src/DataServer/
environment=GOPATH=/home/centos/go/
user=root
autorestart=true
...

更多详细的配置,请参考http://supervisord.org/

操作

配置在 /etc/supervisord.conf(或其他任意有权限访问的文件),然后启动 supervisord(通过 -c 选项指定配置文件路径,如果不指定会按照这个顺序查找配置文件: CWD/supervisord.conf, CWD/etc/supervisord.conf, /etc/supervisord.conf):

启动 supervisord -c /etc/supervisord.conf
控制 supervisorctl -c /etc/supervisord.conf

Supervisorctl 是 supervisord 的一个命令行客户端工具,启动时需要指定与 supervisord 使用同一份配置文件,否则与 supervisord 一样按照顺序查找配置文件。

上面这个命令会进入 supervisorctl 的 shell 界面,然后可以执行不同的命令了:

> status    # 查看程序状态
> stop usercenter   # 关闭 usercenter 程序
> start usercenter  # 启动 usercenter 程序
> restart usercenter    # 重启 usercenter 程序
> reread    # 读取有更新(增加)的配置文件,不会启动新添加的程序
> update    # 重启配置文件修改过的程序
> reload    # 重新加载文件重启

上面这些命令都有相应的输出,除了进入 supervisorctl 的 shell 界面,也可以直接在 bash 终端运行:

$ supervisorctl status
$ supervisorctl stop usercenter
$ supervisorctl start usercenter
$ supervisorctl restart usercenter
$ supervisorctl reread
$ supervisorctl update
$ supervisorctl reload #重新加载文件重启

除了 supervisorctl 之外,还可以配置 supervisrod 启动 web 管理界面,这个 web 后台使用 Basic Auth 的方式进行身份认证。
如果想通过web查看管理的进程,加入以下代码,监听9001,用户user,密码123

[inet_http_server] 
port=9001
username=user      
password=123

查看一下是否监听

lsof -i:9001
COMMAND    PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
superviso 7782 root    4u  IPv4 74522612      0t0  TCP *:etlservicemgr (LISTEN)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值