好荐:进程的好“保姆” Supervisor ,让它来“照顾”您的进程服务

好荐:进程的好“保姆” Supervisor ,让它来“照顾”您的进程服务

解决方案goocz2025-03-23 18:06:3020A+A-

导语

试想一下,当我们蹲坑腹泻才一半、海飞丝还残留在数不多的秀发上、蹦极的身体还在坠落时,您的关键服务进程GG了,需要您花几秒钟启动一下。。。

Supervisor 是用Python开发的进程管理工具,它可以很方便的启动、重启、关闭托管的进程。它能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。“雇佣”它,之前我们试想的场景将不再尴尬的出现。

作为我知知道的最流行的进程管理工具,它可以同时启动、关闭多个进程,比如我有一大批 flume sink 的任务,就是通过它进行的作业管理。Supervisor 批量管理作业进程是非常方便的,它也自带管理UI,支持 web 上远程操作。它在 github 上的 star 7.6k,这个我认为主要是用它的或者知道它的第一次都不是通过github上知道的。

托管 StarRocks BE存储进程

操作系统:Centos7.x

  • 安装 supervisor
yum install -y supervisor
supervisord -v
systemctl enable supervisord
  • 修改文件句柄限制,这里是需要注意的点
vim /etc/systemd/system/multi-user.target.wants/supervisord.service
## 再‘Service’部分内添加如下内容
[Service]
LimitCORE=infinity
LimitNOFILE=1000000
LimitNPROC=1000000
  • 打开http port监听,默认9001
[inet_http_server]
port=0.0.0.0:9001
  • 创建日志输出目录(略)
  • 编辑托管进程配置文件,比如我的这个进程文件名:starrocks_be.ini
# vim starrocks_be.ini
[program:starrocks_be]
directory=/opt/starrocks/be
command=/bin/bash /opt/starrocks/be/bin/start_be.sh
user=ming
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
startsecs=10
startretries=3
redirect_stderr=true
stdout_logfile_maxbytes=20MB
stdout_logfile_backups=10
stdout_logfile=/opt/log/starrocks_be_supervisor.log
  • 启动Supervisor
/usr/bin/python2 /usr/bin/supervisord -c /etc/supervisord.conf
  • 更新Supervisor config,如果配置没有问题会自动拉起托管进程
supervisorctl update
  • 查看托管进程状态
supervisorctl status

除了命令行,也可以在 UI 上进行维护和管理

结语

容器方面大多也使用的是supervisor。

点击这里复制本文地址 以上内容由goocz整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

果子教程网 © All Rights Reserved.  蜀ICP备2024111239号-5