且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Supervisor 进程守护工具

更新时间:2022-08-22 10:03:39

说明

公司Linux服务器无法连接外网,只能下载安装包上传到服务器进行离线安装

Supervisor简介

Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。它是通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径写进去即可。也实现当子进程挂掉的时候,父进程可以准确获取子进程挂掉的信息的,可以选择是否自己启动和报警。supervisor还提供了一个功能,可以为supervisord或者每个子进程,设置一个非root的user,这个user就可以管理它对应的进程。

Supervisor安装

  • 离线安装Python
-- 解压安装包
tar -zxvf Python-2.7.5.tgz

-- 进入解压后的目录
cd Python-2.7.5

-- 安装python2.7.5到指定目录 
./configure –prefix=/usr/lib/python2.7/
make 
make install
 
-- 建立软连接
ln -s /usr/lib/python2.7/bin/python /bin/python
  • 离线安装setuptools-2.0
tar -xzvf setuptools-2.0.tar.gz 

cd setuptools-2.0 

python setup.py install
  • 离线安装meld3-1.0.2
tar zxvf meld3-1.0.2.tar.gz

cd meld3-1.0.2

python setup.py install
  • 离线安装supervisor3.1.3
tar -zxvf supervisor-3.1.3.tar.gz

cd supervisor-3.1.3

python setup.py install

Supervisor配置

  • 生成Supervisor配置文件
    echo_supervisord_conf > /etc/supervisord.conf
  • 启动Supervisor
    supervisord -c /etc/supervisord.conf
  • 验证Supervisor是否启动
    ps aux | grep supervisord
  • 配置Supervisor应用守护
-- 在etc目录下创建应用守护文件存放目录和配置文件
mkdir supervisor
cd supervisor
mkdir conf.d
cd conf.d

-- 配置守护进程
vi task.conf

[program:csxsettlement-framework-eureka]; 应用名称
user=root; 使用root用户执行启动命令
command=java -Xms256m -Xmx512m -jar /sxapp/sxappopt/csxs-settlement/framework/eureka/csxsettlement-framework-eureka.jar
directory=/sxapp/sxappopt/csxs-settlement/framework/eureka; jar包所在目录
autostart = false; 是否自动启动
autorestart = false; 是否自动重启
startsecs = 5
startretries = 3
redirect_stderr = true
stdout_logfile_maxbytes = 10MB
stdout_logfile_backups = 20
stdout_logfile =/sxapp/sxappopt/csxs-settlement/framework/eureka/stdout.log; 日志目录和日志文件名称
  • 修改supervisord.conf文件
-- 打开inet_http_server,去掉前面的';'号
[inet_http_server]         ; inet (TCP) server disabled by default
port=127.0.0.1:9001        ; (ip_address:port specifier, *:port for all iface)
username=user              ; (default is no username (open server))
password=123               ; (default is no password (open server))

-- 引入配置的守护进程
[include]
files = /etc/supervisor/conf.d/*.conf

注意:
修改 supervisord.conf 配置文件后,要执行supervisord -c /etc/supervisord.conf重启supervisor

Supervisor管理守护进程

  • 方式1:通过Supervisor后管页面进行管理

账号密码配置在supervisord.conf文件中

Supervisor 进程守护工具

通过Supervisor管理页面可以对守护进程执行启动、停止、重启、查看日志等操作

Supervisor 进程守护工具

  • 方式2:在SSH控制台通过命令进行管理

Supervisor 进程守护工具

常用的相关管理命令

supervisorctl restart <application name> ;重启指定应用
supervisorctl stop <application name> ;停止指定应用
supervisorctl start <application name> ;启动指定应用
supervisorctl restart all ;重启所有应用
supervisorctl stop all ;停止所有应用
supervisorctl start all ;启动所有应用

版本记录

序号 修改日期 调整方式 调整内容
1 2019-10-25 新增 Supervisor离线安装、基础操作
2