`supervisor` 是一个用 python 编写的客户端/服务器系统,它允许用户控制多个进程。它非常适合用来管理那些不是由系统初始化脚本启动的程序,比如 web 应用、后台任务等。
下面是如何在 linux 服务器上安装和配置 `supervisor` 的步骤。


安装 supervisor
#### 使用包管理器安装(推荐)
大多数现代 linux 发行版都支持通过官方或社区提供的包管理器来安装 `supervisor`,这通常是最简单的方法。
对于基于 debian/ubuntu 的系统
sudo apt-get update sudo apt-get install supervisor
对于基于 redhat/centos 的系统
首先确保 epel 仓库已启用,然后使用 `yum` 或 `dnf` 安装:
- centos 7
sudo yum install epel-release sudo yum install supervisor
- centos 8 或更新版本
sudo dnf install epel-release sudo dnf install supervisor
使用 pip 安装(备用方法)
如果您的系统没有提供 `supervisor` 包,或者您需要特定版本,可以使用 `pip` 来安装。
请注意,这种方法可能不会自动设置好 `systemd` 配置文件。
sudo pip3 install supervisor
注意:
如果您使用的是 python 虚拟环境,请确保激活该环境后再执行上述命令。
配置 supervisor
安装完成后,接下来是配置 `supervisor` 和添加要监控的应用程序。
1. 编辑主配置文件
主配置文件一般位于 `/etc/supervisord.conf` 或 `/etc/supervisor/supervisord.conf`。
某些发行版可能会使用 `/etc/supervisor/conf.d/` 目录中的单独配置文件来定义各个应用程序的设置。
2. 创建应用配置文件
在 `/etc/supervisor/conf.d/` 目录下创建一个新的 `.conf` 文件,例如 `myapp.conf`,并加入如下内容(根据实际情况修改): ```ini
[program:myapp] command=/path/to/your/application directory=/path/to/your/application user=youruser autostart=true autorestart=true stderr_logfile=/var/log/myapp.err.log stdout_logfile=/var/log/myapp.out.log ``` - `command`:指定要运行的命令。 - `directory`:可选,指定工作目录。 - `user`:以哪个用户身份运行此程序。 - `autostart` 和 `autorestart`:是否在启动时自动启动以及异常退出后自动重启。 - `stderr_logfile` 和 `stdout_logfile`:分别指定标准错误和标准输出的日志文件路径。
3. 重新加载配置
更新配置文件后,使用以下命令让 `supervisor` 读取新的配置:
sudo supervisorctl reread sudo supervisorctl update
4. 启动和管理服务
您可以通过以下命令来启动、停止或重启 `supervisor` 管理的服务:
sudo supervisorctl start myapp sudo supervisorctl stop myapp sudo supervisorctl restart myapp
5. 查看状态
查看所有受管程序的状态:
sudo supervisorctl status
6. 使 supervisor 开机自启
如果使用 `systemd`,确保 `supervisor` 设置为开机启动:
sudo systemctl enable supervisord sudo systemctl start supervisord
完成以上步骤后,`supervisor` 就已经成功安装并且配置好了。
您可以开始使用它来管理和监控您的应用程序了。
请记得查阅最新的官方文档,因为具体的命令和选项可能会有所变化。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论