MYF

macOS下的supervisor使用入门及实例

使用supervisor托管你本地的aria2和v2ray。

安装

1
2
brew install supervisor # 安装
brew services start supervisor # 跟随系统启动

配置文件

/usr/local/etc/supervisord.ini用于控制整个supervisor

/usr/local/etc/supervisord.ini内有如下配置时,/usr/local/etc/supervisor.d内的.ini文件会被supervisor接管

1
2
[include]
files = /usr/local/etc/supervisor.d/*.ini

WEB控制器

/usr/local/etc/supervisord.ini中取消注释一下配置后可通过http://localhost:9001控制程序

1
2
[inet_http_server] 
port=127.0.0.1:9001

命令行控制器

常用命令:

1
2
3
4
5
6
7
8
9
supervisorctl 
supervisorctl status #管理的进程的状态
supervisorctl stop programxxx #停止某一个进程(programxxx),programxxx为[program:chatdemon]里配置的值,这个示例就是chatdemon。
supervisorctl start programxxx #启动某个进程
supervisorctl restart programxxx #重启某个进程
supervisorctl stop groupworker #重启所有属于名为groupworker这个分组的进程(start,restart同理)
supervisorctl stop all #停止全部进程,注:start、restart、stop都不会载入最新的配置文件。
supervisorctl reload #载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程。
supervisorctl update #根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启。

注意:显示用stop停止掉的进程,用reload或者update都不会自动重启。

全部命令:

1
2
3
4
5
default commands (type help <topic>):
=====================================
add exit open reload restart start tail
avail fg pid remove shutdown status update
clear maintail quit reread signal stop version

托管本机程序

aria2

安装aria2

1
brew install aria2

/usr/local/etc/supervisor.d目录下新建aria2.ini的配置文件,用于托管这个进程,通过command指令来设置,aria的配置文件位于/usr/local/etc/supervisor.d/config/aria2.conf,可根据自己需求进行修改

1
2
3
4
5
6
[program:aria2c] ;aria2c为进程名称
command=/usr/local/bin/aria2c --conf-path="/usr/local/etc/supervisor.d/config/aria2.conf"
autostart=true
startsecs = 5 ; 启动 5 秒后没有异常退出,就当作已经正常启动了
autorestart = true ; 程序异常退出后自动重启
startretries = 3 ; 启动失败自动重试次数,默认是 3

v2ray

安装v2ray

1
2
brew tap v2ray/v2ray
brew install v2ray-core

/usr/local/etc/supervisor.d目录下新建jp_v2ray.ini的配置文件,用于托管这个进程,通过command指令来设置,v2ray的配置文件位于/usr/local/etc/supervisor.d/config/jp.json,可根据自己需求进行修改

1
2
3
4
[program:jp_v2ray]
command=/usr/local/bin/v2ray -config /usr/local/etc/supervisor.d/config/jp.json
autostart=true
autorestart=true