supervisor安装与使用

1, 安装

pip3 install git+https://github.com/Supervisor/supervisor    

运行echo_supervisord_conf > /etc/supervisor/supervisord.conf来产生设置,未避免产生非root用户的权限错误,将/etc/supervisor/supervisord.conf内[unix_http_server]这项改为 (修改chmod):

[unix_http_server]
file=/tmp/supervisor.sock   ; (the path to the socket file)
chmod=0766                 ; socket file mode (default 0700)
;chown=nobody:nogroup       ; socket file uid:gid owner
;username=user              ; (default is no username (open server))
;password=123               ; (default is no password (open server))

添加末尾的[include]

出现的错误一:

Error: Another program is already listening on a port that one of our HTTP servers is configured to

解决方法:
find / -name supervisor.sock
unlink /name/supervisor.sock

2, 服务启动

sudo supervisord -c /etc/supervisor/supervisord.conf  (先启动supervisord)
ps -ef | grep supervisord  (检查服务状态)

 1. 启动
  supervisord                                        # 使用默认的配置文件启动, 即/etc/supervisord.conf
  supervisord -c /etc/supervisord.conf    # 指定配置文件启动, 推荐使用该方法
  supervisord -u user                            # 使用 user 用户启动supervisord
2. 查看supervisord是否在运行
  ps -ef | grep supervisord
3. 进程的控制
  supervisord启动成功后,可以通过supervisorctl客户端控制进程,启动\停止\重启. 运行supervisorctl命令,不加参数,
  会进入supervisor客户端的交互终端, 并会列出当前所管理的所有进程.
  进入supervisorctl客户端后有哪些操作命令, 可直接输入help来查看每一项
  再使用help 命令  可查看该命令的详细使用;  比如  help start

4, 开机自启
 systemctl enable supervisord.service  

3, 配置自己项目super文件

[program:qrcode]
directory=/home/ubuntu/projects/QrCode   #  程序的启动目录
command=/home/ubuntu/projects/QrCode/py3_env/bin/gunicorn -c gunicorn.py application:app  # 启动命令,可以看出与手动在命令行启动的命令是一样的,注意这里 gunicorn  目录是 python 环境下安装的  gunicorn  路径
autostart=true  # 在 supervisord 启动的时候也自动启动
autorestart=true # 启动 5 秒后没有异常退出,就当作已经正常启动了
stderr_logfile=/home/ubuntu/projects/QrCode/logs/test_stderr.log # 自定义日志目录文件夹
stdout_logfile=/home/ubuntu/projects/QrCode/logs/test_stdout.log #  日志文件,需要注意当指定目录不存在时无法正常启动,所以需要手动创建目录(supervisord 会自动创建日志文件)

###########################################################
 autorestart = true   ; 程序异常退出后自动重启
 startretries = 3     ; 启动失败自动重试次数,默认是 3
user = hadoop          ; 用哪个用户启动
 redirect_stderr = true  ; 把 stderr 重定向到 stdout,默认 false
stdout_logfile_maxbytes = 20MB  ; stdout 日志文件大小,默认 50MB
stdout_logfile_backups = 20     ; stdout 日志文件备份数

4,注意事项
如果修改了 /etc/supervisord.conf ,需要执行 supervisorctl reload 来重新加载配置文件,否则不会生效。。。
可以让supervisord service 随机启动

systemctl enable supervisord
systemctl restart supervisord
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值