Supervisor,一个Linux后台进程管理器,带有web 管理界面。可以控制台,可以web控制简直是神器!

安装

这里使用pip安装

1
pip install supervisor

配置文件

首先生成默认的配置文件

1
echo_supervisord_conf  supervisor.conf   # 生成 supervisor 默认配置文件

添加项目在配置文件底端(引用网上的例子)

1
2
3
4
5
6
7
8
9
[program:myapp]
command=/home/rsj217/rsj217/myproject/venv/bin/gunicorn -w4 -b0.0.0.0:2170 myapp:app ; supervisor启动命令
directory=/home/rsj217/rsj217/myproject ; 项目的文件夹路径
startsecs=0 ; 启动时间
stopwaitsecs=0 ; 终止等待时间
autostart=false ; 是否自动启动
autorestart=false ; 是否自动重启
stdout_logfile=/home/rsj217/rsj217/myproject/log/gunicorn.log ; log 日志
stderr_logfile=/home/rsj217/rsj217/myproject/log/gunicorn.err ; 错误日志

ps. myapp是项目名,工作路径是/home/rsj217/rsj217/,使用的是虚拟环境。

这是一份配置文件的详细说明(https://my.oschina.net/crooner/blog/395069

web管理页面:

1
2
3
4
5
6
7
8
9
10
11
12
13
[inet_http_server]         ; inet (TCP) server disabled by default
port=127.0.0.1:9001 ; (ip_address:port specifier, *:port for all iface)
username=user ; (default is no username (open server))
password=123 ; (default is no password (open server))

[supervisorctl]
serverurl=unix:///tmp/supervisor.sock ; use a unix:// URL for a unix socket
serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket
username=user ; should be same as http_username if set
password=123 ; should be same as http_password if set
;prompt=mysupervisor ; cmd line prompt (default "supervisor")
;history_file=~/.sc_history ; use readline history if available

用户名密码是非必需,如果不需要注释掉就好

启动和指令

1
2
3
4
5
supervisord -c supervisor.conf                             通过配置文件启动supervisor
supervisorctl -c supervisor.conf status 察看supervisor的状态
supervisorctl -c supervisor.conf reload 重新载入 配置文件
supervisorctl -c supervisor.conf start [all]|[appname] 启动指定/所有 supervisor管理的程序进程
supervisorctl -c supervisor.conf stop [all]|[appname] 关闭指定/所有 supervisor管理的程序进程