python,管理一些脚本或者其他任务的框架,可以做到日志分割和失败重启

 nadia     2020-10-29     1424     0   

欢迎来到银盒子的世界~

因为业务越来越大,定时任务,各种脚本,还有其他一下零零碎碎,没有放到项目里边的东西,越来越多。之前是用nuhup(例如这种的:nohup python app.py >celery.log 2>&1 &)保证脚本后台启动不挂,可是维护起来太复杂,而且nohup的日志,没法自己做切割,启动重启啥的,都得手动kill -9 端口号,然后再启动,非常的麻烦,然后就引入了下边这个python包管理这些脚本化的零散。

supervisor   

安装很简单,就直接pip安装就好。(这里有一篇我自己记的pyenv的,配合食用非常靠谱 http://yinhezi.top/post/25.html)

安装,我就用pip安装了

pip install supervisor

生成配置文件,不指定绝对路径,就会默认生成到当前目录下了

echo_supervisord_conf > /etc/supervisord.conf

启动是

supervisord -c supervisord.conf

重启是

supervisorctl -c supervisord.conf reload


然后查看是否已经启动了

图片.png


有个报错

图片.png

解决方法是

图片.png

然后就可以启动了

然后配置开机自启动


vim /lib/systemd/system/supervisord.service


#supervisord.service

[Unit]
Description=Supervisor daemon

[Service]
Type=forking
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target



将文件拷贝到/usr/lib/systemd/system/

cp supervisord.service /usr/lib/systemd/system/

启动服务

systemctl enable supervisord

验证一下是否为开机启动

systemctl is-enabled supervisord



启动是systemctl start supervisord

假如启动报错了,就从日志里看一下,哪里的错误  “journalctl -xe”

图片.png

发表评论