欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

基于centos7打造个人服务器(三):Supervisor安装部署

程序员文章站 2022-05-10 18:59:14
...

介绍

如何保证服务正常运行是广大程序员们都关心的问题。要知道在项目开发完了,往服务器上一部署就撒手不管了,可不是你我该有的态度。等碰到服务半夜异常退出的时候,那就头大了。该如何让我们的服务运行更稳定呢?那么就要请出今天要介绍给大家的主角supervisor了!

supervisor是一款基于python开发的守护进程工具,支持Linux/Unix系统的进程管理,提供对进程进行交互式命令行模式及HTTP网页模式的控制,自4.0版本发布之后,已全面支持python2及python3的部署。

部署及安装

获取supervisor

因为是直接基于centos7的,所以直接通过yum命令安装即可,而且通过yum直接安装时,会自动生成启动脚本,方便配置supervisor随系统启动。

# 安装下载源
sudo yum install epel-release
sudo yum install supervisor

配置文件

安装完成之后会在/etc目录下生成主配置文件及子配置文件目录

主配置文件

# /etc/supervisord.conf
# 关键内容

# 若要开启web管理,则像如下配置
[inet_http_server]
port=0.0.0.0:9001
username=user
password=123
# 如下配置用于指定子配置文件路径及有效子配置文件后缀`.ini`
[include]
files = supervisord.d/*.ini

子配置文件目录

# /etc/supervisord.d/
# 示例 /etc/supervisord.d/frp_client.ini
[program:frp_client]
directory = /opt/frp ; 程序的启动目录
command = /opt/frp/frpc -c frpc.ini   ; 启动命令,可以看出与手动在命令行启动的命令是一样的
autostart = true     ; 在 supervisord 启动的时候也自动启动
startsecs = 5        ; 启动 5 秒后没有异常退出,就当作已经正常启动了
autorestart = true   ; 程序异常退出后自动重启
startretries = 3     ; 启动失败自动重试次数,默认是 3
user = wuyue          ; 用哪个用户启动
redirect_stderr = true  ; 把 stderr 重定向到 stdout,默认 false
stdout_logfile_maxbytes = 20MB  ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 20     ; stdout 日志文件备份数
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile = /data/logs/frp_client_stdout.log
;
; ; 可以通过 environment 来添加需要的环境变量,一种常见的用法是修改 PYTHONPATH
; ; environment=PYTHONPATH=$PYTHONPATH:/path/to/somewhere

注意事项:

  1. command最好使用绝对路径,使用相对路径时,supervisor可能找不到启动命令,导致服务启动失败;
  2. 若程序要求使用普通用户运行时,一定要在将user配置为对应的普通用户,否则将使用root用户启动程序;
  3. 配置好stdout_logfile有利于进行程序异常的定位。

启动服务

sudo systemctl start supervisord.service
# 配置服务开机启动
sudo systemctl enable supervisord.service

命令行模式

sudo supervisorctl
frp_client                       RUNNING   pid 1468, uptime 23:57:52
hass                             RUNNING   pid 1354, uptime 23:57:54
jupyterlab                       STOPPED   Not started
wukong_robot                     STOPPED   Not started

HTTP管理模式

输入配置的用户名及密码
基于centos7打造个人服务器(三):Supervisor安装部署

至此便能方便的对进程进行监控管理了,即便是服务器宕机重启,supervisor也能成功的重新拉起部署的服务,美滋滋有木有~

相关标签: 系统运维 centos