一、概述
supervisor为进程配置提供的的代码块为program
,可以直接添加在服务端配置文件中,启动进程的时候就会加载运行这个配置。
不过一般不推荐这样做,因为supervisor提供了一种类似nginx的配置文件的方式:把配置单独写到一个文件中,然后再把文件包含到服务端配置。
二、步骤
1. 创建配置文件
建议专门创建一个文件夹用来存放各个配置文件,这里创建了一个文件夹/etc/supervisor
用来存放 ,以后有新的配置文件直接放到/etc/supervisor/
下即可。
# 在配置文件的同级目录下创建文件夹保存配置文件
mkdir supervisor
# 创建配置文件
touch ***.ini
2. 把配置文件包含到服务端的include模块中
# 在supervisord.conf中添加配置文件的路径
[include]
files = supervisor/*.ini # 注意相对路径和绝对路径
三、配置
配置文件的主要包含以下参数,根据相关的需要设定相应的参数:
[program:***] # 程序的名称
directory = /home/***/*** ; 程序的启动目录
command = *** -c *** ; 启动命令
autostart = true ; 随supervisord的启动自动启动
startsecs = 5 ; 启动 5 秒后没有异常退出,就当作已经正常启动了
autorestart = true ; 程序异常退出后自动重启
startretries = 3 ; 启动失败自动重试次数,默认是 3
user = root ; 启动的用户身份
; stdout 日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)
stdout_logfile = /var/log/supervisor/***/log.log
stdout_logfile_maxbytes = 20MB ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 20 ; stdout 日志文件备份数
redirect_stderr = false ; 把 stderr 重定向到 stdout,默认 false
stderr_logfile=/var/log/supervisor/***/err.log
stderr_logfile_maxbytes=10MB
stderr_logfile_backups=10
; 可以通过 environment 来添加需要的环境变量,一种常见的用法是修改 PYTHONPATH
; environment=PYTHONPATH=$PYTHONPATH:/path/to/somewhere
例如,一份shadowsocks
的配置为:
[program:shadowsocks]
command = /usr/local/python27/bin/ssserver -c /etc/shadowsocks.json
startsecs=3
autorestart=true
; 日志
stdout_logfile=/var/log/supervisor/shadowsocks/log.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stderr_logfile=/var/log/supervisor/shadowsocks/err.log
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
每次配置完之后需要使用supervisorctl reload
命令重新载入配置
此处评论已关闭