supervisor安装使用

2022-11-22 10:26:35 浏览数 (3)

supervisord的官网:http://supervisord.org。 

代码语言:javascript复制
  Supervisor是一个客户/服务器系统,它可以在类Unix系统中管理控制大量进程。Supervisor使用python开发,有多年历史,目前很多生产环境下的服务器都在使用Supervisor。

  Supervisor的服务器端称为supervisord,主要负责在启动自身时启动管理的子进程,响应客户端的命令,重启崩溃或退出的子进程,记录子进程stdout和stderr输出,生成和处理子进程生命周期中的事件。可以在一个配置文件中配置相关参数,包括Supervisord自身的状态,其管理的各个子进程的相关属性。配置文件一般位于/etc/supervisord.conf。

  Supervisor的客户端称为supervisorctl,它提供了一个类shell的接口(即命令行)来使用supervisord服务端提供的功能。通过supervisorctl,用户可以连接到supervisord服务器进程,获得服务器进程控制的子进程的状态,启动和停止子进程,获得正在运行的进程列表。客户端通过Unix域套接字或者TCP套接字与服务端进行通信,服务器端具有身份凭证认证机制,可以有效提升安全性。当客户端和服务器位于同一台机器上时,客户端与服务器共用同一个配置文件/etc/supervisord.conf,通过不同标签来区分两者的配置。

安装

代码语言:javascript复制
yum -y install supervisor
systemctl start supervisord.service 
systemctl enable supervisord.service 

新建任务

代码语言:javascript复制
cd /etc/supervisord.d/ 新建xxx.ini

[program:xxx]
command=java -Xms750m -Xmx2048m -XX: UseG1GC -jar xxx.jar  --spring.profiles.active=prod --server.port=8080
stdout_logfile=/xxx/log/xxx.log
autostart=true
autorestart=true
startsecs=5
priority=1
stopasgroup=true
killasgroup=true

命令

运行 Supervisor 时会启动一个进程 supervisord,它负责启动所管理的进程,并将所管理的进程作为自己的子进程来启动,而且可以在所管理的进程出现崩溃时自动重启。

代码语言:javascript复制
supervisord -v #查看supervisor版本号

supervisorctl是命令行管理工具,可以用来执行 stop、start、restart 等命令,来对这些子进程进行管理。

supervisor是所有进程的父进程,管理着启动的子进展,supervisor以子进程的PID来管理子进程,当子进程异常退出时supervisor可以收到相应的信号量。

重启指定应用

代码语言:javascript复制
supervisorctl restart < application name>  

停止指定应用

代码语言:javascript复制
supervisorctl stop < application name>

启动指定应用

代码语言:javascript复制
supervisorctl start < application name>

重启所有应用

代码语言:javascript复制
supervisorctl restart all

停止所有应用

代码语言:javascript复制
supervisorctl stop all

启动所有应用

代码语言:javascript复制
supervisorctl start all

查看程序运行状态

代码语言:javascript复制
supervisorctl status

0 人点赞