supervisor使用指南

安装和配置

直接使用pip安装即可

sudo pip install supervisor

安装完成后,选择一个常用目录(用于存放supervisor配置信息和输出日志),此目录在下文中用<sv_path>表示,执行:

# 在该目录下生成配置文件'my.conf'
cd <sv_path>
echo_supervisord_conf > ./my.conf

<sv_path>下创建两个文件夹,分别为supervisorlog(此名称随便起),前者用于存放supervisor.socksupervisor.pid,后者用于存放进程的日志:

cd <sv_path>
mkdir supervisor
mkdir log

然后,使用vim打开my.conf文件(该文件中,分号是注释,为了简洁,就不展示注释掉的语句了),进行修改:

[unix_http_server]
; 这里修改为前面建立的路径
file=<sv_path>/supervisor/supervisor.sock   ; the path to the socket file

[inet_http_server]         ; inet (TCP) server disabled by default
port=127.0.0.1:9001        ; ip_address:port specifier, *:port for all iface

[supervisord]
; 这里修改为前面建立的路径
logfile=<sv_path>/log/supervisord.log ; main log file; default $CWD/supervisord.log
logfile_maxbytes=50MB        ; max main logfile bytes b4 rotation; default 50MB
logfile_backups=10           ; # of main logfile backups; 0 means none, default 10
loglevel=info                ; log level; default info; others: debug,warn,trace
; 这里修改为前面建立的路径
pidfile=<sv_path>/supervisor/supervisord.pid ; supervisord pidfile; default supervisord.pid
nodaemon=false               ; start in foreground if true; default false
silent=false                 ; no logs to stdout if true; default false
minfds=1024                  ; min. avail startup file descriptors; default 1024
minprocs=200                 ; min. avail process descriptors;default 200

[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

[supervisorctl]
; 这里修改为前面建立的路径
serverurl=unix://<sv_path>/supervisor/supervisor.sock ; use a unix:// URL  for a unix socket

接下来,在my.conf文件中,配置需要守护的进程:

; program后面的auto_connect是进程名称,可自定义
[program:auto_connect]
command=python xxx.py                          ; the program (relative uses PATH, can take args)
directory=<your_code_path>                     ; directory to cwd to before exec (def no cwd)
autostart=true                                 ; start at supervisord start (default: true)
startretries=99999                             ; max # of serial start failures when starting (default 3)
redirect_stderr=true                           ; redirect proc stderr to stdout (default false)
stdout_logfile=<sv_path>/log/auto_connect.log  ; stdout log path, NONE for none; default AUTO

[program:natapp]
; 注意,这种不在PATH里的命令,要使用绝对路径
command=<your_natapp_command_path>/natapp
autostart=true
startretries=99999
redirect_stderr=true
stdout_logfile=<sv_path>//log/natapp.log

[program:frp]
command=<your_frp_command_path>/frpc -c <your_frp_ini_path>/frpc.ini
autostart=true
startretries=99999
redirect_stderr=true
stdout_logfile=<sv_path>/log/frp.log

接下来,启动supervisor即可:

# 这里的my.conf建议使用绝对路径
supervisord -c <sv_path>/my.conf


常用命令介绍

  • supervisorctl update
    假如改动了my.conf,执行此命令后,会将有改动的进程重启,无改动的进程无影响
  • supervisorctl reload
    假如改动了my.conf,执行此命令后,所有进程都将重启
  • supervisorctl status
    查看所有守护进程的运行状态
  • supervisorctl start program_name
    启动名为program_name的进程
  • supervisorctl restart program_name
    重启名为program_name的进程
  • supervisorctl stop program_name
    关闭名为program_name的进程
  • supervisorctl stop all
    关闭全部进程

关闭supervisor

# 通过ps命令找到之前运行的supervisor的pid,假设为sv_pid
ps -ef | grep supervisor
kill -s 9 sv_pid
# 执行unlink命令,否则再次启动supervisor时会报错
unlink <sv_path>/supervisor/supervisor.sock
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值