«

Supervisor在mac系统下的安装方法与使用

chunkuan 发布于 阅读:425 工具


Supervisor是一个用Python开发的client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它主要用于管理进程,当一个进程意外被杀死时,Supervisor可以监听到进程死亡并自动重新启动它,从而实现进程的自动恢复功能。以下是在Mac下配置Supervisor的详细步骤:

一、安装Supervisor

在Mac上,可以通过Homebrew来安装Supervisor。Homebrew是Mac上的一个包管理器,可以方便地安装和管理各种软件包。

  1. 首先,确保已经安装了Homebrew。如果还没有安装,可以打开终端并输入以下命令进行安装:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  1. 安装完成后,使用Homebrew来安装Supervisor:
brew install supervisor

二、配置Supervisor

  1. 安装完成后,需要配置Supervisor。Supervisor的配置文件通常位于/usr/local/etc/supervisord.ini。可以使用以下命令打开配置文件进行编辑:
cd /usr/local/etc
vi supervisord.ini
  1. 在配置文件中,可以配置Supervisor的各种参数,如HTTP服务器的地址和端口、用户认证信息等。例如,取消注释并修改以下部分以启用HTTP服务器:
[inet_http_server]
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)

这里的port指定了HTTP服务器的监听地址和端口,usernamepassword分别指定了访问HTTP服务器时的用户名和密码。

  1. 配置文件的末尾通常有一个[include]部分,用于包含其他配置文件。可以取消注释并修改以下部分以包含其他配置文件:
[include]
files = /usr/local/etc/supervisor.d/*.ini  ; 可以随意指定,目录不存在请先建立

这里的files指定了要包含的配置文件路径和文件名模式。可以将自己的进程配置文件放在/usr/local/etc/supervisor.d/目录下,并以.ini为后缀名。

三、添加进程配置

  1. /usr/local/etc/supervisor.d/目录下创建一个新的配置文件,例如my_program.ini,用于配置要管理的进程。
mkdir -p /usr/local/etc/supervisor.d/
vi /usr/local/etc/supervisor.d/my_program.ini
  1. 在配置文件中,按照以下格式添加进程配置:
[program:my_program]
process_name=%(program_name)s_%(process_num)02d
directory=/path/to/your/project  ; 程序的启动目录
command=your_shell_cmd           ; 启动命令
autostart=true                   ; 在supervisord启动时也自动启动
autorestart=true                 ; 程序异常退出后自动重启
startretries=3                   ; 启动失败自动重试次数,默认是3
startsecs=5                      ; 启动5秒后没有异常退出,就当作已经正常启动了
redirect_stderr=true             ; 把stderr重定向到stdout,默认false
stdout_logfile=/path/to/your/logfile.log  ; stdout日志文件
stdout_logfile_maxbytes=10MB     ; stdout日志文件大小限制
stdout_logfile_backups=20        ; stdout日志文件备份数量

这里的program指定了进程的名称,process_name用于生成唯一的进程名称(通常不需要修改),directory指定了程序的启动目录,command指定了启动命令,autostartautorestartstartretriesstartsecs等参数用于控制进程的启动和重启行为,redirect_stderr用于将标准错误输出重定向到标准输出,stdout_logfilestdout_logfile_maxbytesstdout_logfile_backups用于配置标准输出的日志文件及其大小限制和备份数量。

四、启动Supervisor

  1. 配置完成后,可以使用以下命令启动Supervisor:
brew services start supervisor

这会将Supervisor作为服务启动,并设置为开机自启动。

  1. 可以使用以下命令查看Supervisor的启动状态:
ps -aux | grep supervisord

如果Supervisor已经成功启动,应该会看到相关的进程信息。

  1. 还可以使用以下命令来管理Supervisor下的进程:
supervisorctl -c /usr/local/etc/supervisord.ini start my_program  ; 启动进程
supervisorctl -c /usr/local/etc/supervisord.ini stop my_program    ; 停止进程
supervisorctl -c /usr/local/etc/supervisord.ini restart my_program ; 重启进程
supervisorctl -c /usr/local/etc/supervisord.ini status            ; 查看所有进程的状态

这里的my_program是之前在配置文件中指定的进程名称。

五、访问Supervisor的Web界面

如果之前配置了HTTP服务器,可以通过浏览器访问http://localhost:9001来查看Supervisor的Web界面。在界面中,可以看到所有被Supervisor管理的进程的状态、日志等信息。如果配置了用户名和密码,需要输入相应的认证信息才能访问。

通过以上步骤,就可以在Mac下成功配置和使用Supervisor来管理进程了。

macos supervisor brew