Supervisor 配置

本文最后更新于:2024年3月18日 凌晨

Supervisor 配置

  • 配置文件的目录。
    • /etc/supervisord.conf (主配置文件)
    • /etc/supervisor.d/ (默认子进程配置文件,也就是需要我们根据程序配置的地方)

主服务配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[unix_http_server]
file=/home/supervisor/supervisor.sock ; supervisorctl使用的 Socket文件的路径。
;chmod=0700 ; 默认的Socket文件权限0700
;chown=nobody:nogroup ; Socket文件的拥有者。

[inet_http_server] ; 提供web管理后台管理相关配置。
port=0.0.0.0:9001 ; web管理后台运行的ip地址及端口,绑定外网需考虑安全性。
;username=root ; web管理后台登录用户名密码。
;password=root

[supervisord]
logfile=/var/log/supervisord.log ; 日志文件,默认在$CWD/supervisord.log
logfile_maxbytes=50MB ; 日志限制大小,超过会生成新文件,0表示不限制。
logfile_backups=10 ; 日志备份数量默认10,0表示不备份。
loglevel=info ; 日志级别。
pidfile=/home/supervisor/supervisord.pid ; supervisord pidfile; default supervisord.pid ; pid文件。
nodaemon=false ; 是否在前台启动,默认后台启动false
minfds=1024 ; 可以打开文件描述符最小值。
minprocs=200 ; 可以打开的进程最小值。

[supervisorctl]
serverurl=unix:///home/supervisor/supervisor.sock ; 通过Socket连接supervisord,路径与unix_http_server->file配置的一致。

[include]
files = supervisor.d/*.conf ;指定了在当前目录supervisor.d文件夹下配置多个配置文件。

子进程配置

  • 从上面的配置文件[include]->files配置项可以知道,supervisor会把supervisor.d/下以conf结尾的配置文件都加载进来,那么我们在这个目录下面新建一个自定义配置文件test.conf:
1
2
3
4
5
6
7
8
9
10
[program:test] ;[program:xxx] 这里的xxx是指的项目名字。
directory = /opt/project ;程序所在目录。
command = java -jar springboot-hello-sample.jar ;程序启动命令。
autostart=true ;是否跟随supervisord的启动而启动。
autorestart=true;程序退出后自动重启,可选值:[unexpected,true,false],默认为unexpected,表示进程意外杀死后才重启。
stopasgroup=true;进程被杀死时,是否向这个进程组发送stop信号,包括子进程。
killasgroup=true;向进程组发送kill信号,包括子进程。
stdout_logfile=/var/log/sboot/supervisor.log;该程序日志输出文件,目录需要手动创建。
stdout_logfile_maxbytes = 50MB;日志大小。
stdout_logfile_backups = 100;备份数。
  • 重启supervisord,使配置文件生效。
1
service supervisord restart

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!