Linux Supervisor 进程管理

目录

一、Supervisor介绍

二、核心组件

2.1 supervisord

2.2 supervisorctl

2.3 Web Server

三、安装Supervisor

3.1安装要求

3.2安装方式

3.3 修改Web Server端口(可选)

3.4启动服务

四、Supervisor常用命令

4.1 supervisord 命令行选项

4.2 supervisorctl 命令行选项

五、监控服务

5.1 创建进程管理配置文件

5.2 重新加载配置文件

5.3 管控服务


一、Supervisor介绍

        Supervisor是一个开源的进程管理工具,主要用于在类Unix系统(包括Linux和macOS等)上监控和管理长时间运行的进程(守护进程)。Supervisor通过一个简易的INI风格的配置文件提供了诸多针对单个进程的选项进行配置,比如自动重启失败的进程和自动日志轮转。同时,Supervisor还提供本地或远程的命令行和Web界面来启动、停止和监控进程。

二、核心组件

2.1 supervisord

        Supervisor 的服务器组件。主要负责在其启动时启动子程序,响应来自客户端的命令,重启崩溃或退出的子进程,记录其子进程的标准输出和标准错误输出,以及生成和处理对应子进程生命周期各个阶段的“事件”。

2.2 supervisorctl

        Supervisor 的命令行客户端组件。提供了一个类似shell的界面,用于访问supervisord提供的功能。从supervisorctl,用户可以连接到不同的supervisord进程(一次一个),获取受其控制的子进程状态,停止和启动supervisord的子进程,以及获取正在运行的进程列表。

2.3 Web Server

        通过启动supervisord以互联网套接字为目标,可以使用一个(功能精简的)基于Web的用户界面,其功能与supervisorctl相似,可以通过浏览器访问。

三、安装Supervisor

3.1安装要求

  • Supervisor已经在多个操作系统上进行了测试,它在大多数UNIX系统上都能正常工作
  • Supervisor完全不支持在任何版本的Windows下运行
  • Supervisor设计为能在Python 3.4或更高版本,以及Python 2.7版本上工作

3.2安装方式

        Supervisor 可以安装:pip install

pip install supervisor

        yum 安装 supervisor

yum -y install epel-release
yum -y install supervisor

3.3 修改Web Server端口(可选)

 vi /etc/supervisord.conf

[inet_http_server]        ; inet (TCP) server disabled by default
port=*:9001                 ; (ip_address:port specifier, *:port for all iface)
username=admin        ; (default is no username (open server))
password=123456      ; (default is no password (open server))

3.4启动服务

systemctl enable supervisord # 开机自启动
systemctl start supervisord # 启动 supervisord 服务

systemctl restart supervisord 重启服务
systemctl status supervisord # 查看 supervisord 服务状态
ps -ef|grep supervisord # 查看是否存在 supervisord 进程

四、Supervisor常用命令

4.1 supervisord 命令行选项

supervisord [选项]

4.2 supervisorctl 命令行选项

supervisorctl [选项]

五、监控服务

        以监控mysql服务为例。

5.1 创建进程管理配置文件

vi /etc/supervisord.d/mysqld.ini

[program:mysqld]
command=/usr/sbin/mysqld
directory=/var/lib/mysql
user=mysql
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/mysqld_supervisor.log

5.2 重新加载配置文件

sudo supervisorctl reread

5.3 管控服务

sudo supervisorctl start mysqld
sudo supervisorctl stop mysqld
sudo supervisorctl restart mysqld

sudo supervisorctl status mysqld

相关推荐

  1. Linux 进程管理

    2024-07-18 22:12:04       43 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 22:12:04       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 22:12:04       71 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 22:12:04       58 阅读
  4. Python语言-面向对象

    2024-07-18 22:12:04       69 阅读

热门阅读

  1. FastAPI 学习之路(五十四)startup 和 shutdown

    2024-07-18 22:12:04       20 阅读
  2. 二叉搜索树(相关函数实现)

    2024-07-18 22:12:04       21 阅读
  3. PTA - Hello World

    2024-07-18 22:12:04       19 阅读
  4. 项目实战问题

    2024-07-18 22:12:04       20 阅读
  5. python数据挖掘---机器学习模型

    2024-07-18 22:12:04       20 阅读
  6. 240717.学习日志——51单片机C语言版学习总结

    2024-07-18 22:12:04       22 阅读
  7. 西南大学学报社会科学版

    2024-07-18 22:12:04       22 阅读
  8. 思维导图各图使用场景

    2024-07-18 22:12:04       23 阅读
  9. Web开发-LinuxGit基础1-本地-git配置文件

    2024-07-18 22:12:04       23 阅读
  10. C语言 合并2个有序链表

    2024-07-18 22:12:04       24 阅读
  11. SVN泄露

    2024-07-18 22:12:04       24 阅读