欢迎来到银盒子的世界~
因为业务越来越大,定时任务,各种脚本,还有其他一下零零碎碎,没有放到项目里边的东西,越来越多。之前是用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
然后查看是否已经启动了
有个报错
解决方法是
然后就可以启动了
然后配置开机自启动
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”