supervisor 安装配置

1. 安装supervisor

[root@ilaus app]# pip install supervisorctl

2. 创建配置文件

一旦Supervisor安装完成,运行 echo_supervisord_conf。将打印一个“示例”Supervisor配置文件到终端的stdout。

一旦您看到文件回显到您的终端,再 root 权限下请调用命令: echo_supervisord_conf > /etc/supervisord.conf

如果没有root访问权限,或者您不想将 supervisord.conf 文件放在 /etc/supervisord.conf 中,则可以将其放在当前目录(echo_supervisord_conf > supervisord.conf)中,并使用 -c 标志来启动 supervisord 以指定配置文件位置。

创建号配置文件后就可以修改工作了。 

3. 运行supervisor

修改BINDIR, 在安装 python 时通过 ./configure --prefix=/usr/local/py; make; make install 来指定python 解释器使用不同的bindir,修改--prefix 的值可以修改bindir, eg: 当前的 bindir 为 /usr/local/py/bin

添加program

[program:foo]
command=/bin/cat

启动supervisor

[root@ilaus etc]# supervisord

配置文件

supervisor的配置文件通常命名为supervisord.conf, 它被supervisord和supervisorctl使用。任一应用程序在没有 -c 的选项下启动, 则按照下列方式依次查找 supervisord.conf 文件。supervisord.conf 的文件风格为 Windows - INI 风格。它具有部分键/值对。

$CWD/supervisord.conf

$CWD/etc/supervisord.conf

/etc/supervisord.conf

/etc/supervisor/supervisord.conf (自Supervisor 3.3.0之后)

../etc/supervisord.conf (相对于可执行文件)

../supervisord.conf (相对于可执行文件)

supervisord 启动时存在于环境中的环境变量可以在配置文件中使用 Python 字符串表达式语法 %(ENV_X)s

[program:example]
command=/usr/bin/example --loglevel=%(ENV_LOGLEVEL)s

supervisord 配置文件, 具体参数情况查看 supervisor 配置文件 RD 文档

[unix_http_server] 节设置:

supervisord.conf 文件包含一个名为 [unix_http_server] 的节, 应该插入在 unix (socket) 套接字上监听 HTTP 服务器的配置参数。

[inet_http_server] 节设置:

supervisord.conf 文件包含一个名为 [inet_http_server] 的节, 应插入在tcp 套接字上监听http服务器的配置参数。

[supervisord] 节设置

[supervisord] 是于supervisord 进程相关的全局设置。eg: 

[supervisord]
logfile = /tmp/supervisord.log
logfile_maxbytes = 50MB
logfile_backups=10
loglevel = info
pidfile = /tmp/supervisord.pid
nodaemon = false
minfds = 1024
minprocs = 200
umask = 022
user = chrism
identifier = supervisor
directory = /tmp
nocleanup = true
childlogdir = /tmp
strip_ansi = false
environment = KEY1="value1",KEY2="value2"

[supervisorctl] 节设置

包含 supervisorctl 交互式 shell 程序的设置。

[supervisorctl]
serverurl = unix:///tmp/supervisor.sock
username = chris
password = 123
prompt = mysupervisor

[program:x] 节设置

设置supervisord 启动和控制的程序。

command 启动时运行的命令, command 的值可以包括Python字符串表达式,例如 /path/to/programname --port=80%(process_num)02d 可能在运行时扩展为 /path/to/programname --port=8000。字符串表达式将根据包含密钥 group_namehost_node_nameprocess_numprogram_namehere (超级用户配置文件的目录)的字典以及所有以 ENV_ 为前缀的环境变量进行求值。

eg:

[program:cat]
command=/bin/cat
process_name=%(program_name)s
numprocs=1
directory=/tmp
umask=022
priority=999
autostart=true
autorestart=unexpected
startsecs=10
startretries=3
exitcodes=0,2
stopsignal=TERM
stopwaitsecs=10
stopasgroup=false
killasgroup=false
user=chrism
redirect_stderr=false
stdout_logfile=/a/path
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stdout_events_enabled=false
stderr_logfile=/a/path
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB
stderr_events_enabled=false
environment=A="1",B="2"
serverurl=AUTO

 

上一篇:centos7.5 安装supervisor


下一篇:linux centos 8 为.net core 添加进程守护 Supervisor