Python Web部署笔记五(Supervisor)
Supervisor安装
$ pip3 install supervisor
$ echo_supervisord_conf > /etc/supervisord.conf
$ mkdir -p /etc/supervisord.d/conf
$ mkdir -p /var/log/supervisor/
$ mkdir -p /var/run/supervisor/
$ echo 'files = supervisord.d/conf/*.conf' >> /etc/supervisord.conf
# [include]前面的注释要去掉
修改以下默认地址
- /var/run/supervisor/supervisor.sock
- /var/log/supervisor/supervisor.log
- /var/run/supervisor.pid
$ wget -O /usr/lib/systemd/system/supervisord.service https://raw.githubusercontent.com/Supervisor/initscripts/master/centos-systemd-etcs
$ vi /usr/lib/systemd/system/supervisord.service
# 修改/usr/bin
为/usr/local/bin
# supervisord service for systemd (CentOS 7.0+)
# by ET-CS (https://github.com/ET-CS)
[Unit]
Description=Supervisor daemon
[Service]
Type=forking
ExecStart=/usr/local/bin/supervisord -c /etc/supervisord.conf
ExecStop=/usr/local/bin/supervisorctl shutdown
ExecReload=/usr/local/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
$ systemctl enable supervisord.service
$ systemctl start supervisord.service
$ systemctl status supervisord.service
supervisor配置app运行
$ vi /etc/supervisord.d/conf/awesome.conf
[program:awesome]
command=/srv/awesome/www/app.py
directory=/srv/awesome/www
user=wwwdata
startsecs=3
redirect_stderr=true
stdout_logfile_maxbytes=50MB
stdout_logfile_backups=10
stdout_logfile=/srv/awesome/log/app.log
$ useradd wwwdata
$ supervisorctl reload
$ supervisorctl start awesome
supervisor启动报错
某一次发现supervisor启动错误
$ systemctl status supervisord
2 16:50:59 vultr.guest systemd[1]: supervisord.service: control process exited, code=exited status=2
Aug 22 16:50:59 vultr.guest systemd[1]: Failed to start Supervisor daemon.
Aug 22 16:50:59 vultr.guest systemd[1]: Unit supervisord.service entered failed state.
Aug 22 16:50:59 vultr.guest systemd[1]: supervisord.service failed
使用systemctl start supervisord
尝试启动后,会出现错误提示,提示使用命令journalctl -xe
查看具体信息
$ journalctl -xe
,可以看到如下信息
Aug 22 16:54:42 vultr.guest supervisord[1659]: Error: Cannot open an HTTP server: socket.error reported errno.ENOENT (2)
Aug 22 16:54:42 vultr.guest supervisord[1659]: For help, use /usr/local/bin/supervisord -h
Aug 22 16:54:42 vultr.guest systemd[1]: supervisord.service: control process exited, code=exited status=2
Aug 22 16:54:42 vultr.guest systemd[1]: Failed to start Supervisor daemon.
搜索找到原因,是由于/var/run/supervisor/
文件夹不存在(不知道怎么没了),解决后成功启动。
评论区空空如也~