Supervisor在mac系统下的安装方法与使用
Supervisor是一个用Python开发的client/server服务,是Linux/Unix系统下的一个进程管理工具,不支持Windows系统。它主要用于管理进程,当一个进程意外被杀死时,Supervisor可以监听到进程死亡并自动重新启动它,从而实现进程的自动恢复功能。以下是在Mac下配置Supervisor的详细步骤:
一、安装Supervisor
在Mac上,可以通过Homebrew来安装Supervisor。Homebrew是Mac上的一个包管理器,可以方便地安装和管理各种软件包。
- 首先,确保已经安装了Homebrew。如果还没有安装,可以打开终端并输入以下命令进行安装:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- 安装完成后,使用Homebrew来安装Supervisor:
brew install supervisor
二、配置Supervisor
- 安装完成后,需要配置Supervisor。Supervisor的配置文件通常位于
/usr/local/etc/supervisord.ini
。可以使用以下命令打开配置文件进行编辑:
cd /usr/local/etc
vi supervisord.ini
- 在配置文件中,可以配置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服务器的监听地址和端口,username
和password
分别指定了访问HTTP服务器时的用户名和密码。
- 配置文件的末尾通常有一个
[include]
部分,用于包含其他配置文件。可以取消注释并修改以下部分以包含其他配置文件:
[include]
files = /usr/local/etc/supervisor.d/*.ini ; 可以随意指定,目录不存在请先建立
这里的files
指定了要包含的配置文件路径和文件名模式。可以将自己的进程配置文件放在/usr/local/etc/supervisor.d/
目录下,并以.ini
为后缀名。
三、添加进程配置
- 在
/usr/local/etc/supervisor.d/
目录下创建一个新的配置文件,例如my_program.ini
,用于配置要管理的进程。
mkdir -p /usr/local/etc/supervisor.d/
vi /usr/local/etc/supervisor.d/my_program.ini
- 在配置文件中,按照以下格式添加进程配置:
[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
指定了启动命令,autostart
、autorestart
、startretries
、startsecs
等参数用于控制进程的启动和重启行为,redirect_stderr
用于将标准错误输出重定向到标准输出,stdout_logfile
、stdout_logfile_maxbytes
和stdout_logfile_backups
用于配置标准输出的日志文件及其大小限制和备份数量。
四、启动Supervisor
- 配置完成后,可以使用以下命令启动Supervisor:
brew services start supervisor
这会将Supervisor作为服务启动,并设置为开机自启动。
- 可以使用以下命令查看Supervisor的启动状态:
ps -aux | grep supervisord
如果Supervisor已经成功启动,应该会看到相关的进程信息。
- 还可以使用以下命令来管理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来管理进程了。