1. 安装 supervisor
pip install supervisor
2. 创建主进程配置文件 supervisord.conf
; supervisor config file
[unix_http_server]
file=/var/run/supervisor.sock ; (the path to the socket file)
chmod=0700 ; sockef file mode (default 0700)
[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/log/supervisor ; ('AUTO' child log dir, default $TEMP)
; the below section must remain in the config file for RPC
; (supervisorctl/web interface) to work, additional interfaces may be
; added by defining them in separate rpcinterface: sections
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket
; The [include] section can just contain the "files" setting. This
; setting can list multiple files (separated by whitespace or
; newlines). It can also contain wildcards. The filenames are
; interpreted as relative to this file. Included files *cannot*
; include files themselves.
[include]
files = /etc/supervisor/conf.d/*.conf
3. 创建子进程配置文件 .conf
根据supervisord.conf
文件中的include
文件路径,创建多个.conf
文件,如下为seal.conf
[program:seal_pdf]
directory=/data/QL_pdf
command=flask run
autostart=true
autorestart=true
killasgroup=true
stopasgroup=true
stdout_logfile=/data/QL_pdf/logs/http.log
redirect_stderr=true
4. 启动主进程
根据supervisord.conf
文件位置,启动 supervisorctl
supervisord -c /etc/supervisor/supervisord.conf
5. 管理子进程
- supervisorctl status
- supervisorctl start 【program_name】
- supervisorctl stop 【program_name】
6. 让子进程配置文件的修改生效
- supervisorctl update
注意
supervisor没有监听内部程序并自动重启的功能,如需要可搭配gunicorn等使用
网友评论